2010-12-03 16 views
21

Gibt es Tools, die Offline-Analyse (einschließlich Zusammenfassung/Sortierung/Sichten) einer .hprof-Datei ermöglichen? Oder können Sie VisualVM, Hat usw. im Batch-Modus ausführen?Tool oder Tricks zum Analysieren von Offline-Java-Heap-Dumps (.hprof)

Ich interessiere mich für etwas, das eine Eingabe .hprof-Datei nehmen kann, knacke es und erzeuge Berichte.

Ich nehme an, Sie würden in einer Reihe von Optionen übergeben müssen, den Bericht zu konfigurieren, so dass, wenn Sie hilfreiche Tipps wissen, wiegen Sie bitte.

Vorzugsweise skript so konnte ich ein paar auf einmal laufen.

+0

Mit "offline" meinst du "kopflos"? Ich denke an "offline" als "außerhalb des Kontexts der laufenden JVM-Instanz". –

Antwort

18

Eclipse Memory Analyzer tut alles, was Sie brauchen.

+1

können Sie Befehlszeilenoptionen hinzufügen, um "crunch this .hprof offline" zu sagen? – user331465

+1

Suchen Sie nach ParseHeapDump.sh (.bat unter Windows) in diesem FAQ: http://wiki.eclipse.org/MemoryAnalyzer/FAQ –

1

Können Sie jmap-histo verwenden? Welche Art von Bericht möchten Sie extrahieren?

+2

jmap -histo funktioniert nicht gegen eine .hprof-Datei; es erwartet ein pid – user331465

+0

Grundsätzlich alles, was helfen würde, Speicherlecks zu identifizieren. Nebenbei würde ich 'größte Objekte' sagen - entweder flach und tief. – user331465

2

schwer zu schlagen yourkit java profiler. Es kostet Geld, aber es ist jeden Cent wert.

+0

, aber Sie können Heap-Dump-Analyse "in Batch" ausführen, dh über ein Skript, um die Berichte zu generieren anstatt zu warten ... warten ... warten ... während es lädt und wühlt ...? – user331465

11

können Sie jhat verwenden, um das Speicherabbild einer .hprof Datei parsen/navigieren.

$ jhat heapdump.hprof 
Reading from heapdump.hprof... 

Started HTTP server on port 7000 
Server is ready. 

Das Tool wird mit dem JDK geliefert.