Bloomberg ima memray otvorenog koda, alat za profilisanje memorije za Python aplikacije. Program prati operacije dodjele memorije u Python-u i nudi vizualni interfejs za analizu i optimizaciju potrošnje memorije različitih sekcija koda, kao i dodatke napisane u C/C++. Izveštaji se mogu generisati interaktivno i generisati u HTML formatu. Uključuje CLI sučelje za upravljanje profiliranjem i biblioteku koja se može koristiti za praćenje memorijske aktivnosti u projektima treće strane. Kod je objavljen pod licencom Apache 2.0. Rad je podržan samo na Linux platformi.
Osnovne mogućnosti:
- Aplikacije: Pronalaženje uzroka velike potrošnje memorije u aplikacijama, pronalaženje curenja memorije i identifikacija koda koji vrši previše dodjeljivanja memorije.
- Pratite sve pozive funkcije u odnosu na ukupnu potrošnju memorije, potrošnju unutar funkcije i broj dodijeljenih memorija. Sposobnost precizne procjene steka poziva.
- Rukovanje pozivima C/C++ bibliotekama i računanje potrošnje memorije u izvornim modulima. Podrška za analizu projekata koristeći numpy i pande.
- Minimalni troškovi i zanemarljiv uticaj na performanse analizirane aplikacije. Mogućnost onemogućavanja praćenja izvornog koda radi poboljšanja performansi.
- Prisutnost velikog broja izvještaja o korištenju memorije, uključujući vizualne hijerarhijske i stepenaste grafove (flame graph).
- Sposobnost rada sa nitima i analize memorije u kontekstu pojedinačnih niti. Podržane su i Python niti i izvorne niti kao što su C++ niti koje se koriste u C/C++ modulima.
- Mogućnost integracije sa pytestom i pružanje pytest napomena koje definišu ograničenja potrošnje memorije, ako se prekorače, upozorenja će se generisati tokom izvršavanja testa.
izvor: opennet.ru