Bloomberg ha reso open source memray, uno strumento per la profilazione della memoria nelle applicazioni Python. Il programma tiene traccia delle allocazioni di memoria in Python e offre un'interfaccia visiva per analizzare e ottimizzare l'utilizzo della memoria in varie sezioni di codice, oltre a plugin per C/C++. I report possono essere generati sia in modo interattivo che in formato HTML. Lo strumento include un'interfaccia a riga di comando per la gestione della profilazione e una libreria utilizzabile per tracciare le operazioni di memoria in progetti di terze parti. Il codice è pubblicato con licenza Apache 2.0. Il lavoro è supportato solo sulla piattaforma Linux.
Caratteristiche principali:
- Aree di applicazione: identificazione delle cause dell'elevato consumo di memoria nelle applicazioni, individuazione di perdite di memoria e identificazione del codice che esegue troppe allocazioni di memoria.
- Traccia tutte le chiamate di funzione, incluso il consumo di memoria complessivo, il consumo di memoria all'interno della funzione e il numero di allocazioni di memoria. In grado di valutare accuratamente lo stack delle chiamate.
- Elaborazione delle chiamate alle librerie C/C++ e contabilizzazione del consumo di memoria nei moduli nativi. Supporto per l'analisi di progetti tramite NumPy e Pandas.
- Sovraccarico minimo e impatto trascurabile sulle prestazioni dell'applicazione analizzata. Possibilità di disabilitare il monitoraggio del codice nativo per migliorare le prestazioni.
- Disponibilità di un gran numero di report sull'utilizzo della memoria, inclusi grafici gerarchici visivi e a fiamma.
- Possibilità di lavorare con i thread e analizzare la memoria per i singoli thread. Sono supportati sia i thread Python che quelli nativi, come i thread C++ utilizzati nei moduli C/C++.
- La possibilità di integrarsi con pytest e fornire annotazioni pytest che definiscono limiti di consumo di memoria che, se superati, genereranno avvisi durante l'esecuzione del test.


Fonte: opennet.ru
