ho provato la maggior parte delle opzioni indicate in precedenza, ma pensano che questa piccola e intuitivo pacchetto di essere il migliore: pympler
E 'abbastanza dritto in avanti per tracciare gli oggetti che non erano garbage collection, controllare questo piccolo esempio:
pacchetto di installazione tramite pip install pympler
from pympler.tracker import SummaryTracker
tracker = SummaryTracker()
# ... some code you want to investigate ...
tracker.print_diff()
l'output mostra tutti gli oggetti che sono stati aggiunti, più la memoria che consumavano.
uscita Esempio:
types | # objects | total size
====================================== | =========== | ============
list | 1095 | 160.78 KB
str | 1093 | 66.33 KB
int | 120 | 2.81 KB
dict | 3 | 840 B
frame (codename: create_summary) | 1 | 560 B
frame (codename: print_diff) | 1 | 480 B
Questo pacchetto fornisce un certo numero di altre caratteristiche. Controllare pympler's documentation, in particolare la sezione Identifying memory leaks.
Ho trovato [questa ricetta] (http://code.activestate.com/recipes/65333/) utile. –
Sembra stampare troppo perché i dati siano utili – Casebash
@Casebash: Se la funzione stampa qualcosa, si sta seriamente sbagliando. Elenca gli oggetti con il metodo '__del__' a cui non si fa più riferimento tranne per il loro ciclo. Il ciclo non può essere interrotto a causa di problemi con '__del__'. Aggiustalo! –