Java Forum: Eclipse Memory Analyzer
2.7.2008 | 2 Minuten Lesezeit
Habe mir gerade den hervorragenden Vortrag Memory Analysis in a Nutshell von Elena Nayashkova angeschaut. Elena ist Comitterin des Eclipse Memory Analyzer Projekts, das von SAP entwickelt wird. (SAP MAT Wiki )
Das Tool bietet hervorragende Analyse Funktionen für HPROF basierte Memory Dumps an. Unterstützung für IBM JVM Heapdumps wurden von Elena für Ende des Jahres angekündigt. Laufzeitanalysen des Heaps werden nicht unterstützt – das Tool fokussiert sich rein auf die Auswertung der Dumps.
Die interessantesten Features auf einen Blick:
- Indizierung der Heapdumps beim ersten Laden. Dadurch wird die Bearbeitungszeit von großen Heaps sehr schnell (wurde eindrucksvoll mit einem 2 GB großen Dump gezeigt) und es können auch sehr große Dumps analysiert werden. Die meisten Profiler haben hier Probleme, weil die Arbeit mit großen Heaps sehr träge ist und die 2 GB Prozessgrenze bei 32Bit Maschinen die maximale Heap Größe für Dumps limitiert. Meine Erfahrung ist, dass Heaps > 1 GB nur schwer mit herkömmlichen Tools und Profilern analysiert werden können.
- Dominator Tree. Erstellt einen Baum für die dominierenden Objekte im Heap mit allen Objekten die Garbage Collected würden, wenn das dominierte Objekte dereferenziert wird. Der Baum kann nach Klassen, Paketen oder ClassLoadern sortiert werden.
- Automatische Memory Leak Analyse mit dem Leak Hunter. Spezielle Auswertungsfunktionen erstellen einen Report mit den potentiellen Memory Leaks und allen benötigten Informationen, wie Root Referenzen und Retained Memory/Objects.
- Component Report. Neben den Memory Leaks werden auch kritische Memory Usage Patterns analysiert. Beispiele hierfür sind „Duplicate Strings“ oder „Collection Usage“. Duplicate Strings bedeutet, dass MAT mehrfach auftretende Strings mit dem selben Inhalt sucht und die Referenzen anzeigt. Collection Usage findet leere Collection Klassen und zeigt den belegten Speicher an.
- Erweiterbarkeit. Das Tool kann um eigene Suchkriterien und Views erweitert werden.
- Reporting. Es existieren interessante und grafisch ansprechende Reports für bestimmte Funktionen, die an Entwickler etc. geschickt werden können und alle Informationen für die Analyse beinhalten.
Fazit: Ein sehr interessantes Tool für jeden, der seine Anwendung auf Memory Leaks oder hohen Speicherverbrauch analysieren muss.
Weitere Beiträge
von Mirko Novakovic
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Mirko Novakovic
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.