Eclipse Memory Analyzer: Auf der Jagd nach Speicherfressern

Erwin Margewitsch, SAP AG

Der Vortrag steht als PDF Dokument zum Download bereit.

Die Analyse von Memory Leaks oder hohem Speicherverbrauch ist schwierig und zeitintensiv. Neben der Expertise und der Kenntniss des zu untersuchenden Quellcodes ist auch die Erfahrung in der Analyse solcher Probleme essentiell.

Der Memory Analyzer vereinfacht diesen Prozess: Auf Basis eines HPROF Heap Dumps wird der Speicherinhalt einer Java Virtual Machine aufbereitet und Histogramme, die grössten Objekte und deren einbehaltener Speicher extrahiert. Nach der Pflicht kommt die Kür: in einem Report werden alle Informationen über die grössten Speicherfresser zusammengetragen - seien es einzelne Instanzen, mehrere Instanzen der selben Klasse oder speicherhunrige Threads. Dazu wird detailiert dargestellt welche Objekte die Speicherfresser am Leben halten und warum der Garbage Collector sie nicht abräumen kann. Zusätzlich wird gezeigt was die Threads gerade machten: HTTP Requests, SQL Statements etc.

Der Memory Analyzer wurde kürzlich von SAP als Open Source freigegeben und ist ein Eclipse Technology Projekt. Dieser Vortrag zeigt die Verwendung des Memory Analyzers anhand eines typischen Szenarios: der Application Server ist mit einem Out Of Memory Error beendet worden. Natürlich ist der Server längst neu gestartet worden, aber jetzt gilt es die Ursache zu finden und einen erneuten Out Of Memory zu verhindern.

 

Erwin Margewitsch Erwin Margewitsch ist Software Entwickler bei der SAP AG. Er hat mehrjährige Erfahrung in der Entwicklung von Java-basierten Webanwendungen. Zur Zeit arbeitet Erwin am Memory Analyzer mit und beschäftigt sich dabei insbesondere mit SWT, Rich Client Platform und der Eclipse Infrastruktur.