Probé la mayoría de las opciones mencionadas anteriormente, pero encontré que este paquete pequeño e intuitivo es el mejor: pympler
Es bastante sencillo rastrear objetos que no se recolectaron como basura, consulte este pequeño ejemplo:
instalar paquete a través de pip install pympler
from pympler.tracker import SummaryTracker
tracker = SummaryTracker()
# ... some code you want to investigate ...
tracker.print_diff()
La salida muestra todos los objetos que se han agregado, más la memoria que consumieron.
Salida de muestra:
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
Este paquete proporciona una serie de características más. Consulte la documentación de pympler , en particular la sección Identificación de pérdidas de memoria .