anderes Programm starten, max. Speicherverbrauch ermitteln.



  • Ich würde gerne aus einem C++-Programm ein anderes Programm starten und anschließend (nachdem das andere Programm fertig durchgelaufen ist) ermitteln, was der maximale Speicherverbrauch des anderen Programms war.

    Mein Ansatz wäre, irgendwie an die PID des anderen Programms zu kommen und dann in /proc/PID/... (wo genau?) den maximalen Speicherverbrauch abzufragen. Die Frage ist, ob das überhaupt geht, wenn das andere Programm eigentlich schon beendet ist.

    Bisher starte ich das andere Programm über std::system, aber ich denke, dass man so nicht weiterkommt.



  • Mit man: fork einen Prozess für das Programm (mit man: execv) starten.
    Dann im eigenen Programm immer wieder den Speicherverbrauch auslesen und das Maximum merken bis der Kindprozess beendet wurde.

    EDIT: Du suchst dann /proc/<pid>/statm ... die ersten beiden Zahlen sollten für dich interessant sein



  • ok, danke, ich hab alles hinbekommen.


Anmelden zum Antworten