Heaptrack analysiert den Speicherbedarf von Linux-Programmen

Das Werkzeug bietet eine detaillierte Analyse des Heap-Speicherbedarfs vonC/C++-Programmen unter Linux. Heaptrack ist freie Open-Source-Software im Rahmen des KDE-Projekts.

In Pocket speichern vorlesen Druckansicht
Heaptrack analysiert unter Linux den Speicherbedarf
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Nach einer knapp dreijährigen Entwicklungszeit hat der in Berlin lebende Milian Wolff nun Version 1.0 von Heaptrack veröffentlicht. Das Analysewerkzeug gibt einen detaillierten Einblick in den Heap-Speicherbedarf von C/C++-Programmen unter Linux. Wolff startete die Entwicklung, weil ihm die Funktionen des Profilers Massif von Valgrind, für den er einen Visualizer geschrieben hat, nicht ausreichten.

Der Profiler besteht aus zwei Kernkomponenten: Das Tool heaptrack startet ein Programm und legt den Heap-Speicherbedarf in einer Logdatei ab. Alternativ lässt es sich an laufende Prozesse anhängen. heaptrack_gui bietet eine Benutzeroberfläche, die Einsicht in die gesammelten Daten bietet. Entwickler können so nachvollziehen, zu welchem Zeitpunkt welche Komponenten wie viel Speicher benötigt haben. Auch bietet es eine Zusammenfassung unter anderem nach Peaks und häufigsten temporären Anforderungen. Es will bei der Suche nach ineffizienten oder gar fehlerhaften Modulen helfen, die den Heap-Speicherbedarf in die Höhe treiben.

Die Allocations-Ansicht zeigt den Verlauf des Heap-Speicherbedarfs eines Programms.

(Bild: GitHub-Projektseite von Heaptrack)

Die beiden Werkzeuge können sich freilich auf unterschiedlichen Geräten befinden, um beispielsweise Embedded-Programme zu optimieren, bei denen das erste Tool auf dem Endgerät läuft und das zweite auf der Entwickler-Workstation. Zusätzlich gibt es ein Tool namens heaptrack_print, das eine Übersicht in ASCII-Form ausgibt. Entwickler können die Ausgabe über Parameter steuern und damit die Ergebnisse filtern.

Als Vorteil gegenüber Massif nennt das Readme des GitHub-Repositorys die bessere Performance und den geringeren Speicherbedarf von Heaptrack. Außerdem fasst Massif die Daten vor dem Speichern des Reports zusammen, wobei einige Informationen verloren gehen. Weitere Details lassen sich dem Blogbeitrag entnehmen. Heaptrack ist FOSS (Free and Open Source Software) und liegt auf GitHub unter dem KDE-Dach. (rme)