Am Montag, den 19.04.2010, 11:54 +0200 schrieb Sascha Effert: > ich habe in C++ eine shared library und ein Programm, welches dies > benutzt geschrieben. Ich würde jetzt gerne mit dem Speicherbedarf > experimentieren, speziell mit dem, was durch die shared lib verbraucht > wird. Momentan habe ich dazu das Programm gestartet und regelmäßig mit > ps -p $PID -o rss h > den genutzten Speicherbedarf abgefragt. Habe ich damit wirklich den > gesamten Speicher, den der Prozess benötigt? Ich muss gestehen, ich > blicke durch die verschiednen Parameter nicht durch.
Meiner Erfahrung nach ist es absolut nicht trivial, den Speicherverbrauch eines Prozesses mit Linux Bordmitteln herauszufinden. Shared libs wie z.B. die glibc fressen eine Menge Platz, werden aber von mehr als einem Prozess genutzt usw., da kann man auch schlicht keine Angaben zu machen. Was du relativ einfach ermitteln kannst, ist wie viel Speicher du selbst allozierst. Dafür einfach global malloc/free bzw. new und delete überladen und mitzählen. Ansonsten ist getrusage vermutlich schon die beste Lösung, oder halt in proc/[pid]/statm schauen, steht das gleiche drin (wobei du das pollen und händisch auswerten müsstest). > Da ich die Anwendung selbst geschrieben habe, könnte ich auch an > passenden Stellen die Methode getrusage aufrufen: > http://linux.die.net/man/2/getrusage > Leider ist mir auch hier wieder nicht ganz klar, worüber ich die gesamte > Menge des verwendeten Speichers meines Prozesses erhalte. ru_idrss und ru_isrss sind auf jedenfall klar deinem Prozess zuzuordnen, der shared memory aus o.g. Gründen halt nicht. Gruß, Andre -- Andre Landwehr, Ricklinger Stadtweg 42, D-30459 Hannover Phone: +49-(0)511-1054932, Mobile: +49-(0)175-4648375
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
-- Linux mailing list [email protected] subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo
