Überprüfen Sie Python auf Speicherlecks

Es ist notwendig, den Arbeitsablauf einer einfachen Speicherleckuntersuchung zu übergeben und anzufordern, deshalb habe ich ihn auch hier zusammengefasst

Ich habe Guppy und Heapy verwendet, aber Tracemalloc ist Standard in der 3.4-Serie, und ich kann den Unterschied zwischen Schnappschüssen erkennen. Ich denke, es ist in Ordnung, diesen in Zukunft zu wählen.

Installieren und verwenden Sie das pytracemalloc-Modul bis zur 3.3-Serie

Wie benutzt man

Liste der Speichernutzung anzeigen

import tracemalloc

tracemalloc.start()

# ... run your application ...

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')

Die Anzahl und Größe der zugewiesenen Blöcke wird für jede Zeile angezeigt, für die der Speicher von malloc zugewiesen wurde.

Sieh den Unterschied

Dies reicht aus, um das Problem zu verstehen

import tracemalloc
tracemalloc.start()
# ... start your application ...

snapshot1 = tracemalloc.take_snapshot()
# ... call the function leaking memory ...
snapshot2 = tracemalloc.take_snapshot()

top_stats = snapshot2.compare_to(snapshot1, 'lineno')

print("[ Top 10 differences ]")
for stat in top_stats[:10]:
    print(stat)

Da der Unterschied zwischen der Anzahl der Blöcke und der Größe jeder Zeile, in der malloc ausgeführt wurde, angezeigt wird, wird der Speicher, der auch bei Ausführung der Funktion nicht freigegeben wird, als Unterschied angezeigt.

Recommended Posts

Überprüfen Sie Python auf Speicherlecks
Suchen Sie mit Python nach externen Befehlen
Techniken zum Sortieren in Python
Über "für _ in range ():" von Python
[Python] Generiert QR-Code im Speicher
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Überprüfen und verschieben Sie das Verzeichnis in Python
Führen Sie unittest in Python aus (für Anfänger)
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Speicherverlust im Python Jupyter Lab (Notebook)?
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
Inject wird für DDD in Python empfohlen
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Tipps zum Umgang mit Binärdateien in Python
Zusammenfassung verschiedener for-Anweisungen in Python
Geben Sie Anmerkungen für Python2 in Stub-Dateien ein!
Überprüfen Sie, ob die URL in Python vorhanden ist
Vorlage zum Schreiben von Batch-Skripten in Python
Wenn Sie sich die Speichernutzung in Python 3 ansehen
So überprüfen Sie die Version von opencv mit Python
Verarbeiten Sie mehrere Listen mit for in Python
MongoDB mit Python zum ersten Mal
Suchen und überprüfen Sie die inverse Matrix in Python
Holen Sie sich ein Zeichen für Conoha mit Python
Beispiel für den Umgang mit EML-Dateien in Python
AtCoder Spickzettel in Python (für mich)
Ich habe mit Python nach einer Primzahl gesucht
Hinweise zur Verwendung von Python (Pydev) mit Eclipse
Tipps zum Erstellen kleiner Werkzeuge mit Python
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
SublimeText2 und SublimeLinter - Syntax prüfen auf Python3--
2016-10-30 sonst für Python3> für:
Überprüfen Sie die Speichernutzung
Quadtree in Python --2
Python in der Optimierung
Python [für mich]
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Python-Grammatikprüfung
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python