speicherbedarf eines programms messen



  • hallo!
    ich wuerde gerne testen, wieviel speicher ein programm benoetigt (c als programmiersprache und linux als betriebssystem). wie ich gelesen habe, gibt es 2 befehle unter unix, naemlich 'size' und 'ps', die so etwas tun. allerdings kann ich keine "schoene" (fuer mich verstaendliche ;)) erklaerung dazu finden, also wie man sie anwendet, und was der output bedeutet.
    kennt sich jemand damit aus? mir wuerde ja schon ein link reichen, wo ich nachlesen kann 😕 .
    wuerde mich freuen, wenn mir jemand helfen kann!



  • Hallo,

    man man: ps und man man: size sollten dir Auskunft geben.



  • Hallo,

    top zeigt auch auf ganz simple Art und Weise an, wieviel Speicher dein Programm
    aktuell belegt.

    mfg
    v R



  • danke.
    mein programm arbeitet mit dynamischer speicherverwaltung und ich moechte den
    benoetigten speicher aufdroeseln um zu sehen, welcher teil meines programms
    wieviel speicher belegt.
    top geht fuer meine anwendung also nicht so richtig. aber trotzdem danke fuer den
    tip, gut zu wissen auch mal fuer andere anwendungen.
    da muss ich mich wohl durch die manpages mal durchfuchsen ...



  • wie wäre es mit einen profiler.



  • damit schlage ich mich gerade rum, aehm mit 'gprof'. die ausfuehrung klappt
    soweit, aber was mir da angezeigt wird erscheint mir momentan noch wie schotter.
    aus dem call graph werde ich irgendwie nicht schlau. kennst du dich damit aus?



  • kasai schrieb:

    danke.
    mein programm arbeitet mit dynamischer speicherverwaltung und ich moechte den
    benoetigten speicher aufdroeseln um zu sehen, welcher teil meines programms
    wieviel speicher belegt.
    top geht fuer meine anwendung also nicht so richtig. aber trotzdem danke fuer den
    tip, gut zu wissen auch mal fuer andere anwendungen.
    da muss ich mich wohl durch die manpages mal durchfuchsen ...

    Vielleicht kann dir das valgrind tool massif ein paar Einsichten vermitteln.



  • http://www.rz.rwth-aachen.de/computing/hpc/prog/tune/gprof/cLINUXprofile1.html
    hier kannst du mal nachschauen. ist eine kurze erläuterung zum output.

    am besten du suchst dir einen mit einer gui. oder eine gui die auf gprof aufsetzt.



  • den output bekomme ich beim aufruf auch immer mitgeschickt.
    z.b. steht da:
    "if the parents of the function cannot be determined, the word '<spontaneous>' is
    printed in the 'name' field, and all the other fields are blank."
    warum wird sowas nicht erkannt? wisst ihr moegliche gruende? sowas steht bei mir
    naemlich mehrmals. also ich kann in dem output keine anstaendige struktur
    erkennen. es stehen die meissten aufgerufenen funktionen im callgraph, nichteinmal
    alle. warum die anderen weggelassen wurden, weiss ich nicht . 😞



  • wenn mich nicht alles täuscht werden die libs die du einbindest nicht mit angezeigt, da es alles release build's sind. bin mir aber nicht 100% sicher.
    dein geschrieben methoden und deren call graph muss aber zu sehen sein. oder?

    mfg



  • ich habe heute morgen nochmal ein neues profile gemacht und das sieht soweit
    anstaendig aus. es ist komisch, denn das neue profile stammt aus der gleichen
    gmon.out, beinhaltet nun aber alle methoden, so wie es sein soll. 99.9xx % der
    fehler sitzen vor dem computer 🙄 , also wer weiss, was ich da gewurschtelt habe?!
    die zusaetzlichen infos werden aber tatsaechlich mit angezeigt.

    weiss jemand was der folgende satz bedeutet?
    "granularity: each sample hit covers 4 byte(s) for 0.02% of 40.91 seconds"
    der steht gleich zu beginn des call graphs...

    danke schonmal, fuer eure antworten bis hier her!
    mfg.


Anmelden zum Antworten