Bloombergil on avatud lähtekoodiga memray, tööriist mälu profileerimiseks Pythoni rakendustes. Programm jälgib Pythonis mälujaotuse toiminguid ja pakub visuaalset liidest koodi erinevate osade, aga ka C/C++ keeles kirjutatud lisandmoodulite mälutarbimise analüüsimiseks ja optimeerimiseks. Aruandeid saab genereerida kas interaktiivselt või HTML-vormingus. See sisaldab CLI-liidest profileerimise haldamiseks ja teeki, mida saab kasutada mälutoimingute jälgimiseks kolmandate osapoolte projektides. Kood on avaldatud Apache 2.0 litsentsi all. Toimimist toetatakse ainult Linuxi platvormil.
Põhijooned:
- Rakendused: tuvastage rakenduste suure mälutarbimise põhjused, leidke mälulekkeid ja tuvastage kood, mis teostab liiga palju mälueraldisi.
- Jälgib kõiki funktsioonikutseid seoses mälu kogutarbimisega, funktsiooni tarbimisega ja mälu eraldamise toimingute arvuga. Võimalus täpselt hinnata kõnede pinu.
- Teekide kõnede töötlemine C/C++ ja mälutarbimise arvestamine algmoodulites. Tugi projektide analüüsimiseks numpy ja pandade abil.
- Minimaalne üldkulu ja tühine mõju analüüsitava rakenduse toimivusele. Võimalus keelata omakoodi jälgimine toimivuse parandamiseks.
- Suure hulga mälukasutuse aruannete, sealhulgas visuaalsete hierarhiliste ja redeligraafikute (leegigraafiku) kättesaadavus.
- Oskus töötada lõimedega ja analüüsida mälu üksikute lõimede kontekstis. Toetatud on nii Pythoni lõimed kui ka alglõimed, näiteks C/C++ moodulites kasutatavad C++ lõimed.
- Võimalus integreerida pytestiga ja pakkuda pytesti annotatsioone, mis määratlevad mälutarbimise piirangud, ületamise korral genereeritakse testi täitmise ajal hoiatused.
Allikas: opennet.ru