Bloombergs Open-Source-Memray, ein Speicherprofilierungstool für Python

Bloomberg verfügt über Open-Source-Memray, ein Speicherprofilierungstool für Python-Anwendungen. Das Programm überwacht Speicherzuweisungsvorgänge in Python und bietet eine visuelle Schnittstelle zur Analyse und Optimierung des Speicherverbrauchs verschiedener Codeabschnitte sowie in C/C++ geschriebener Plug-Ins. Berichte können sowohl interaktiv als auch im HTML-Format generiert werden. Es umfasst eine CLI-Schnittstelle zur Verwaltung der Profilerstellung und eine Bibliothek, die zur Überwachung der Speicheraktivität in Drittprojekten verwendet werden kann. Der Code wird unter der Apache 2.0-Lizenz veröffentlicht. Der Betrieb wird nur auf der Linux-Plattform unterstützt.

Key Features:

  • Anwendungen: Ermitteln der Ursachen für hohen Speicherverbrauch in Anwendungen, Auffinden von Speicherlecks und Identifizieren von Code, der zu viele Speicherzuweisungen vornimmt.
  • Verfolgen Sie alle Funktionsaufrufe im Verhältnis zum gesamten Speicherverbrauch, zum Verbrauch innerhalb der Funktion und zur Anzahl der Speicherzuweisungen. Fähigkeit, den Aufrufstapel genau abzuschätzen.
  • Bearbeitung von Aufrufen an C/C++-Bibliotheken und Berücksichtigung des Speicherverbrauchs in nativen Modulen. Unterstützung für die Analyse von Projekten mit Numpy und Pandas.
  • Minimaler Overhead und vernachlässigbare Auswirkungen auf die Leistung der analysierten Anwendung. Möglichkeit, die native Codeverfolgung zu deaktivieren, um die Leistung zu verbessern.
  • Das Vorhandensein einer großen Anzahl von Berichten zur Speichernutzung, einschließlich visueller hierarchischer und abgestufter Diagramme (Flammendiagramm).
  • Die Fähigkeit, mit Threads zu arbeiten und den Speicher im Kontext einzelner Threads zu analysieren. Es werden sowohl Python-Threads als auch native Threads wie C++-Threads unterstützt, die in C/C++-Modulen verwendet werden.
  • Die Möglichkeit zur Integration mit Pytest und zur Bereitstellung von Pytest-Anmerkungen, die die Speicherverbrauchsgrenzen definieren. Bei Überschreitung werden während der Testausführung Warnungen generiert.

Bloombergs Open-Source-Memray, ein Speicherprofilierungstool für Python
Bloombergs Open-Source-Memray, ein Speicherprofilierungstool für Python


Source: opennet.ru

Kommentar hinzufügen