[Mustang] Heap Analyse unter Java 6

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Unter Java 6 gibts ein neues JMX MBean: HotSpotDiagnostic unter der Domain: com.sun.management. Dort gibts die operation dumpHeap die einen String (Pfad zu einer Datei) akzeptiert, worin man angeben kann, wo die Informationen zum aktuellen Heap hingespeichert werden sollen.

Als Beispiel hab ich mal für Eclipse 3.2M6 einen HeapDump in die Datei c:\heapDump.txt abgelegt (23,87 MB groß).

Analysieren kann man das ganz mit dem Heap Analysis Tool (jHat), welches auch bei Mustang dabei ist.

Code:
C:\Dokumente und Einstellungen\Tom>jhat -J-Xmx512m c:\heapDump.txt
Reading from c:\heapDump.txt...
Dump file created Sat Apr 15 16:07:58 CEST 2006
Snapshot read, resolving...
Resolving 333147 objects...
Chasing references, expect 66 dots..................................................................
Eliminating duplicate references..................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

Anschließend findet man unter http://localhost:7000 allerlei Informationen zum Inhalt des Heaps zum Zeitpunkt des "Snapshots". Darunter Informationen wie, wie viele Instanzen gibts von einer bestimmten Klasse, wie viel Speicher verbrauchen diese, von welchen ClassLoadern wurden sie geladen, etc...

Viel Spaß damit :)

Gruß Tom
 
Zurück