So finden Sie Speicherlecks eines Prozesses?

Ich brauche, um herauszufinden, die Speichernutzung eines bestimmten Prozesses. In der Tat, ich brauche, um herauszufinden, gibt es keine Speicher-Leck in der Anwendung, die ich geschrieben habe. Ich kann memfree oder /proc/meminfo da unsere system-log-Ordner gemountet, der RAM.

Ich gegangen durch viele ähnliche Anfragen, und einige haben vorgeschlagen, um zu verwenden ps aux Befehl. Ich bin irgendwie verwirrt, auf welche parameter gibt den richtigen Speicher-Auslastung oder vielleicht Speicher Leck nach ein paar Stunden. PS AUX gibt VSZ(virtual mem) und RSS(resident set size).

Ich geschrieben habe ein Beispiel-Programm, das reserviert 4 Byte Speicher und De-alloziert. Nach dem ausführen des Programms, es scheint VSZ Wert steigt, wenn Speicher reserviert, aber nicht abgenommen, wenn De zugeordnet. Aber RSS Wert zeigte korrigieren, erhöht sich, wenn zugeteilt, und verringert, wenn De zugeordnet.

Kann jemand bestätigen, ob mit RSSWert auf die Menge der Speicherverlust im code? Oder gibt es eine andere Methode?

  • Das Betriebssystem kann nicht bestimmen, ob es gibt Speicherlecks in der Anwendung. Du wirst nie bekommen diese Art von Informationen, die von tools wie ps oder finden Sie es in /proc/meminfo. Der Titel dieser Fragen für "Speicher-Auslastung eines Prozesses", aber der text fragt nach memory-leaks. Eine richtige Antwort auf diese Frage wurde von Dan: Valgrind ich habe bearbeitet den Titel entsprechend.
Schreibe einen Kommentar