Ich benutze Eclipse MAT, um hprof-Dateien zu analysieren. Es ist sehr gut, aber wenn Sie einen 2Gb-Heap-Dump haben, dann müssen Sie MAT mit einer 2Gb + Heap-Größe selbst ausführen, um den kompletten Heap-Dump laden zu können.
Ich frage mich, ob jemand ein Tool kennt, das eine 2-Gb-hprof-Datei analysieren kann, ohne so viel Speicher selbst zu verwenden (z. B. lädt es nicht die komplette Datei, sondern geht irgendwie durch). Dies wäre nützlich, wenn eine hprof-Datei auf einem Kundenserver generiert wird, da ich dann eine Analyse auf dem Server ausführen kann, anstatt zu versuchen, eine 2-GB-Datei über ein VPN zu kopieren.
hprof-Dateien haben ein Format, das nicht wirklich gut funktioniert, ohne es vollständig zu laden und anschließend einige Querverweise zu verwenden.
Sie können jedoch den hprof-Dump überspringen, um nur grundlegende Informationen von der laufenden VM zu erhalten, indem Sie jmap
, jstack
und visualvm
im JDK-Paket verwenden.
Typische Speicherlecks sollten beispielsweise bereits aus dem Jmap-Heap-Histogramm sichtbar sein, da Sie möglicherweise die Orte erraten, die Objekte erzeugen oder beibehalten, indem Sie nur die Anzahl der Instanzen einer bestimmten Klasse betrachten.