Sie können auch die getrusage()
Funktion aus dem Modul der Standardbibliothek resource
. Das resultierende Objekt hat das Attribut ru_maxrss
die den gesamten Spitzenspeicherverbrauch des aufrufenden Prozesses angibt:
>>> import resource
>>> resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
2656
En Python-Dokumente sind nicht klar, was die Einheiten genau sind, aber die Mac OS X-Manualseite für getrusage(2)
beschreibt die Einheiten als Kilobytes.
Die Linux-Manpage ist nicht ganz klar, aber es scheint gleichwertig zu sein mit dem /proc/self/status
Informationen (d.h. Kilobytes), die in der akzeptierten Antwort beschrieben sind. Für den gleichen Prozess wie oben, der unter Linux läuft, ergibt die in der akzeptierten Antwort aufgeführte Funktion:
>>> memory_usage()
{'peak': 6392, 'rss': 2656}
Dies ist vielleicht nicht ganz so einfach zu bedienen wie die /proc/self/status
Lösung, aber es handelt sich um eine Standardbibliothek, so dass sie (vorausgesetzt, die Einheiten sind standardisiert) plattformübergreifend und auch auf Systemen verwendbar sein sollte, die keine /proc/
(z. B. Mac OS X und andere Unixe, vielleicht Windows).
Auch, getrusage()
Funktion kann auch gegeben werden resource.RUSAGE_CHILDREN
um die Verwendung für Kindprozesse zu erhalten, und (auf einigen Systemen) resource.RUSAGE_BOTH
für die gesamte (eigene und untergeordnete) Prozessnutzung.
Dies wird die memory_get_usage()
Fall, beinhaltet aber nicht den Spitzenverbrauch. Ich bin mir nicht sicher, ob andere Funktionen des resource
Modul kann einen Spitzenverbrauch ergeben.