Bloomberg má open source memray, nástroj pro profilování paměti v aplikacích Python. Program sleduje operace alokace paměti v Pythonu a nabízí vizuální rozhraní pro analýzu a optimalizaci spotřeby paměti různých částí kódu, stejně jako zásuvných modulů napsaných v C/C++. Zprávy mohou být generovány interaktivně nebo ve formátu HTML. Obsahuje rozhraní CLI pro správu profilování a knihovnu, kterou lze použít ke sledování operací s pamětí v projektech třetích stran. Kód je publikován pod licencí Apache 2.0. Operace je podporována pouze na platformě Linux.
Základní možnosti:
- Aplikace: Identifikujte důvody vysoké spotřeby paměti v aplikacích, najděte úniky paměti a identifikujte kód, který provádí příliš mnoho alokací paměti.
- Sleduje všechna volání funkcí ve vztahu k celkové spotřebě paměti, spotřebě v rámci funkce a počtu operací alokace paměti. Schopnost přesně odhadnout zásobník hovorů.
- Zpracování volání do knihoven v C/C++ a účtování spotřeby paměti v nativních modulech. Podpora pro analýzu projektů pomocí numpy a pandy.
- Minimální režie a zanedbatelný dopad na výkon analyzované aplikace. Možnost deaktivovat sledování nativního kódu pro zlepšení výkonu.
- Dostupnost velkého množství zpráv o využití paměti, včetně vizuálních hierarchických a žebříkových grafů (plamenný graf).
- Schopnost pracovat s vlákny a analyzovat paměť v kontextu jednotlivých vláken. Podporována jsou jak vlákna Pythonu, tak nativní vlákna, jako jsou vlákna C++ používaná v modulech C/C++.
- Možnost integrace s pytestem a poskytování anotací pytestu, které definují limity spotřeby paměti, při překročení budou během provádění testu generována varování.
Zdroj: opennet.ru