Wie profiliere ich die Speichernutzung in Python?
Ich habe mir vor kurzem das Interesse an algorithmen und haben begonnen, Sie zu erforschen, indem eine naive Implementierung und dann die Optimierung auf verschiedene Weise.
Ich bin bereits vertraut mit dem standard-Python-Modul für die Profilerstellung Laufzeit (für die meisten Dinge, die ich gefunden habe, der timeit magic-Funktion in IPython ausreichend zu sein), aber ich interessiere mich auch für die Speichernutzung, so kann ich erkunden die Nachteile (z.B. die Kosten für das Zwischenspeichern einer Tabelle der zuvor berechneten Werte gegenüber recomputing Sie, wie gebraucht). Gibt es ein Modul, das wird Profil die Speicher Nutzung einer bestimmten Funktion für mich?
InformationsquelleAutor der Frage Lawrence Johnston | 2009-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese wurde bereits beantwortet hier: Python-Speicher-profiler
Im Grunde haben Sie so etwas wie, dass (zitiert von Guppy-PE):
InformationsquelleAutor der Antwort Hubert
Für einen wirklich einfachen Ansatz versuchen:
Legen Sie einfach
using("Label")
wo Sie wollen, um zu sehen, was Los ist.InformationsquelleAutor der Antwort anon
Ich Sie nur wollen, schauen Sie sich die Speicherauslastung eines Objekts, (Antwort auf andere Frage)
InformationsquelleAutor der Antwort serv-inc
Python 3.4 enthält ein neues Modul:
tracemalloc
. Es gibt detaillierte Statistiken darüber, welche code ist die Zuordnung der meisten Speicher. Hier ist ein Beispiel, dass zeigt die obersten drei Zeilen zuweisen von Speicher.Und hier sind die Ergebnisse:
InformationsquelleAutor der Antwort Don Kirkby
vielleicht hilft es:
<weitere>
InformationsquelleAutor der Antwort madjardi
Unten ist eine einfache Funktion, Dekorateur, die erlaubt zu verfolgen, wie viel Speicher der Prozess verbraucht, bevor der Aufruf der Funktion, nach dem Aufruf der Funktion, und was ist der Unterschied:
Hier ist mein blog beschreibt alle details.
InformationsquelleAutor der Antwort Ihor B.