Sehr spät, um dies zu beantworten, aber es lohnt sich, einen kurzen Blick darauf zu werfen. Nur 2 Minuten benötigt, um im Detail zu verstehen.
Erstellen Sie zunächst dieses Java-Programm
import java.util.ArrayList;
import java.util.List;
public class GarbageCollectionAnalysisExample{
public static void main(String[] args) {
List<String> l = new ArrayList<String>();
for (int i = 0; i < 100000000; i++) {
l = new ArrayList<String>(); //Memory leak
System.out.println(l);
}
System.out.println("Done");
}
}
Verwenden JPS die vmid (virtuelle Maschine id dh JVM id)
Go zu finden unter Befehle>
C:\>jps
18588 Jps
17252 GarbageCollectionAnalysisExample
16048
2084 Main
CMD und geben Sie
17252 ist das vmid, das wir brauchen.
Jetzt werden wir lernen, wie man jmap verwenden und
Verwenden jmap jhat - Haufen von
aus Java-Dokumentation über jmap „jmap druckt gemeinsam genutztes Objekt-Speicherkarten oder Heap-Speicher Details zu erzeugen Dump eine bestimmte Prozess oder Core-Datei oder ein Remote-Debug-Server“
Verwenden folgender Befehl Heapdump zu generieren>
C:\>jmap -dump:file=E:\heapDump.jmap 17252
Dumping heap to E:\heapDump.jmap ...
Heap dump file created
Wo 17252 ist das vmid (von oben ausgewählt).
Heap Dump wird in E erzeugt werden: \ heapDump.jmap
Jetzt jhat jhat zur Analyse des Garbage-Collection-Dump in Java verwendet wird, verwenden -
C:\>jhat E:\heapDump.jmap
Reading from E:\heapDump.jmap...
Dump file created Mon Nov 07 23:59:19 IST 2016
Snapshot read, resolving...
Resolving 241865 objects...
Chasing references, expect 48 dots................................................
Eliminating duplicate references................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
standardmäßig wird es http-Server auf Port starten 7000. Dann gehen wir zu http://localhost:7000/
Courtesy: JMAP, How to monitor and analyze the garbage collection in 10 ways
Haben Sie 'jmap -heap> DumpFile.txt probiert? –
Diese Datei öffnet sich in Eclipse MAT, geben Sie es .hprof Erweiterung – iTake
Siehe auch http://stackoverflow.com/questions/185893/how-do-i-analyze-a-hprof-file – rogerdpack