Bloomberg ima odprtokodni memray, orodje za profiliranje pomnilnika v aplikacijah Python. Program sledi operacijam dodeljevanja pomnilnika v Pythonu in ponuja vizualni vmesnik za analizo in optimizacijo porabe pomnilnika različnih odsekov kode, kot tudi vtičnike, napisane v C/C++. Poročila se lahko ustvarijo interaktivno ali v formatu HTML. Vključuje vmesnik CLI za upravljanje profiliranja in knjižnico, ki se lahko uporablja za sledenje pomnilniških operacij v projektih tretjih oseb. Koda je objavljena pod licenco Apache 2.0. Delovanje je podprto samo na platformi Linux.
Ključne značilnosti:
- Aplikacije: Ugotovite razloge za visoko porabo pomnilnika v aplikacijah, poiščite puščanje pomnilnika in identificirajte kodo, ki izvaja preveč dodelitev pomnilnika.
- Sledi vsem klicem funkcij glede na skupno porabo pomnilnika, porabo znotraj funkcije in število operacij dodeljevanja pomnilnika. Sposobnost natančne ocene sklada klicev.
- Obdelava klicev v knjižnice v C/C++ in upoštevanje porabe pomnilnika v izvornih modulih. Podpora za analizo projektov z uporabo numpy in pandas.
- Minimalni stroški in zanemarljiv vpliv na delovanje analizirane aplikacije. Možnost onemogočanja sledenja izvorne kode za izboljšanje zmogljivosti.
- Razpoložljivost velikega števila poročil o uporabi pomnilnika, vključno z vizualnimi hierarhičnimi in lestvičastimi grafi (plamenski graf).
- Sposobnost dela z nitmi in analize pomnilnika v kontekstu posameznih niti. Podprte so tako niti Python kot izvorne niti, kot so niti C++, ki se uporabljajo v modulih C/C++.
- Možnost integracije s pytestom in zagotavljanje opomb pytest, ki določajo omejitve porabe pomnilnika, če bodo presežene, bodo med izvajanjem testa ustvarjena opozorila.
Vir: opennet.ru