Tenere traccia della memoria di sessione di Python utilizzando Tracemem

Tracemem Tenere traccia della memoria di sessione di Python

PROGRAMMAZIONE PYTHON

Tracemem è una libreria leggera per aiutarti a monitorare l’intera memoria delle sessioni Python.

Tracemem è un tracciatore di memoria di sessioni in Python. Foto di Ronan Furuta su Unsplash

Tracemem è uno strumento di profilazione leggero per Python che consente di misurare l’utilizzo completo della memoria di una sessione Python in un momento particolare e di monitorare le modifiche successive. Questo può essere utilizzato per risolvere problemi di memoria nel codice o semplicemente per registrare l’utilizzo della memoria. Le funzionalità di Tracemem sono molto limitate, il che fa sì che sia uno strumento molto leggero, con un impatto minimo sulla memoria della sessione. Tuttavia, come qualsiasi strumento di profilazione della memoria, può avere un impatto significativo sul tempo di esecuzione del programma.

Sotto il cofano, il pacchetto è un wrapper attorno a pympler.asizeof.asizeof(), una funzione di pympler che misura l’utilizzo della memoria da parte di una sessione Python. Ciò significa che tracemem offre una semplice API per monitorare e valutare la memoria della sessione.

Questa semplicità ha un costo. Non è possibile utilizzare questo strumento per misurare l’utilizzo della memoria di una particolare funzione, oggetto o frammento di codice. Se le tue esigenze sono più ampie della semplice valutazione della memoria della sessione, puoi utilizzare altri strumenti, come:

  • pympler
  • memory_profiler
  • perftester
  • memray

E naturalmente, ci sono dei tipici profiler Python, di cui puoi leggere qui:

I Profiler Python

Codice sorgente: Lib/profile.py e Lib/pstats.py Introduzione ai profiler: cProfile e profile forniscono deterministico…

docs.python.org

Mentre di solito mi affido al profiler Python integrato cProfile, il pacchetto line profiler offre uno strumento potente per la profilazione riga per riga.

L’API di Tracemem è in qualche modo atipica per Python, ma questa è stata una decisione deliberata per mantenere lo strumento semplice e leggero possibile. Questa sintassi insolita deriva anche dal fatto che tracemem è uno strumento di profilazione, tipicamente utilizzato per il debug. Pertanto, l’approccio diverso alla sintassi (o piuttosto, agli import) non dovrebbe causare problemi significativi.

Questo articolo approfondisce i fondamenti di tracemem e mostra come utilizzarlo per monitorare l’insieme complessivo…