W jakiś sposób pamięć, którą mój program Python pobiera coraz więcej pamięci w trakcie działania (kolumna VIRT i RES) w poleceniu "góra" nadal rośnie.Poszukiwanie śladów pamięci Pythona?
Jednak dwukrotnie dokładnie sprawdziłem mój kod bardzo ostrożnie i jestem pewien, że nie ma wycieków pamięci (nie używano żadnego słownika, żadnych zmiennych globalnych .. Jest to tylko główna metoda wywoływania metody podrzędnej wiele razy).
użyłem heapy do profilu mojego użycie pamięci przez
from guppy import hpy;
heap = hpy();
.....
print heap.heap();
każdym razem głównym wywołuje metodę sub. Co zaskakujące, zawsze daje taką samą wydajność. Ale zużycie pamięci wciąż rośnie.
Zastanawiam się, czy nie użyłem heapy, czy VIRT i RES w poleceniu "top" nie odzwierciedlają pamięci, której używa mój kod?
Czy ktoś może zapewnić lepszy sposób śledzenia użycia pamięci w skrypcie Pythona?
Wielkie dzięki!
Wygląda na to, że podtlenek jest nieszczelny. Zakładając, że masz dostęp do jego kodu, spróbuj [sys.getsizeof (object) lub pysizer] (http://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object -in-python) do mierzenia obiektów wewnątrz submetod. – smci