Bloomberg heeft memray, een tool voor het profileren van geheugen in Python-applicaties, als open source beschikbaar gesteld. Het programma volgt geheugenallocaties in Python en biedt een visuele interface voor het analyseren en optimaliseren van geheugengebruik in verschillende codefragmenten, evenals C/C++-plugins. Rapporten kunnen zowel interactief als in HTML-formaat worden gegenereerd. De tool bevat een CLI voor het beheren van profiling en een bibliotheek die kan worden gebruikt om geheugenbewerkingen in projecten van derden te volgen. De code is gepubliceerd onder de Apache 2.0-licentie. Ondersteuning wordt alleen geboden op het platform. Linux.
Belangrijkste kenmerken:
- Toepassingsgebieden: Oorzaken van een hoog geheugengebruik in applicaties identificeren, geheugenlekken opsporen en code identificeren die te veel geheugen toewijst.
- Volg alle functieaanroepen in relatie tot het totale geheugengebruik, het geheugengebruik binnen een functie en het aantal geheugentoewijzingen. Mogelijkheid om de call stack nauwkeurig te schatten.
- Verwerking van C/C++-bibliotheekaanroepen en berekening van geheugengebruik in native modules. Ondersteuning voor analyse van projecten met Numpy en Pandas.
- Minimale overhead en verwaarloosbare impact op de prestaties van de geanalyseerde applicatie. Mogelijkheid om native codetracking uit te schakelen om de prestaties te verbeteren.
- Beschikbaarheid van een groot aantal rapporten over geheugengebruik, inclusief visuele hiërarchische grafieken en vlamgrafieken.
- Mogelijkheid om met threads te werken en geheugen per thread te analyseren. Zowel Python-threads als native threads, zoals C++-threads die in C/C++-modules worden gebruikt, worden ondersteund.
- Mogelijkheid om te integreren met Pytest en Pytest-annotaties te leveren die geheugenverbruikslimieten definiëren, die waarschuwingen genereren wanneer tests worden uitgevoerd.


Bron: opennet.ru
