Java Forum: Eclipse Memory Analyzer

Keine Kommentare

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.

Als Mitbegründer und Advisor der codecentric AG berät Mirko bei der strategischen Ausrichtung des Unternehmens. Er ist Geschäftsführer und Mitgründer der Startups CenterDevice und Instana – beides disruptive Geschäftsmodelle auf Basis von Big-Data- und Cloud-Technologien.

Seine Interessen liegen im Bereich der Veränderung von Geschäftsmodellen durch moderne Technologien und Software, also der zunehmenden Digitalisierung der Welt und den daraus resultierenden Veränderungen und Potential für Unternehmen.
Im Privatleben widmet er sich am liebsten seiner Familie, zum sportlichen Ausgleich fährt er Mountainbike.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.