A Bloomberg nyílt forráskódú memray-vel rendelkezik, amely egy eszköz a memória profilozására a Python alkalmazásokban. A program nyomon követi a memóriafoglalási műveleteket Pythonban, és vizuális felületet kínál a kód különböző szakaszai, valamint a C/C++ nyelven írt beépülő modulok memóriafelhasználásának elemzéséhez és optimalizálásához. A jelentések interaktívan vagy HTML formátumban generálhatók. Tartalmaz egy CLI interfészt a profilalkotás kezelésére, valamint egy könyvtárat, amely a memóriaműveletek nyomon követésére használható harmadik féltől származó projektekben. A kód az Apache 2.0 licenc alatt jelent meg. A művelet csak Linux platformon támogatott.
Főbb jellemzők:
- Alkalmazások: Azonosítsa az alkalmazások magas memóriafelhasználásának okait, keresse meg a memóriaszivárgást, és azonosítsa a túl sok memóriafoglalást végrehajtó kódot.
- Nyomon követi az összes függvényhívást a teljes memóriafelhasználás, a függvényen belüli fogyasztás és a memóriafoglalási műveletek számának függvényében. A hívásverem pontos becslésének képessége.
- A könyvtárak hívásainak feldolgozása C/C++ nyelven és a memóriafelhasználás elszámolása a natív modulokban. Támogatás projektek elemzéséhez numpy és panda használatával.
- Minimális általános költség és elhanyagolható hatás az elemzett alkalmazás teljesítményére. Lehetőség a natív kódkövetés letiltására a teljesítmény javítása érdekében.
- Nagyszámú memóriahasználati jelentés elérhetősége, beleértve a vizuális hierarchikus és létragrafikonokat (lánggrafikon).
- Képes szálakkal dolgozni és a memóriát az egyes szálak kontextusában elemezni. A Python szálak és a natív szálak, például a C/C++ modulokban használt C++ szálak egyaránt támogatottak.
- A pytesttel való integráció lehetősége és memóriafelhasználási határokat meghatározó pytest annotációk biztosítása, ha túllépik, a teszt végrehajtása során figyelmeztetések generálódnak.
Forrás: opennet.ru