Bardzo późno, aby odpowiedzieć na to pytanie, ale warto rzucić okiem na niego. Zaledwie 2 minuty potrzebne do szczegółowego zrozumienia.
Najpierw należy utworzyć program java
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");
}
}
Użyj JPS znaleźć vmid (maszyna wirtualna id tj JVM id)
Przejdź do polecenie cmd i wpisz poniżej Polecenia>
C:\>jps
18588 Jps
17252 GarbageCollectionAnalysisExample
16048
2084 Main
17252 to vmid, którego potrzebujemy.
Teraz dowiemy się, jak korzystać z jmap i jhat
Używaj jmap - generowanie sterty zrzucić
Od docs java około jmap „drukuje jmap udostępnione mapy pamięci obiektu lub szczegółów pamięci stercie dany proces lub rdzeń plik lub zdalnym serwerem debug”
Zastosowanie następujące polecenie, aby wygenerować zrzut stosu>
C:\>jmap -dump:file=E:\heapDump.jmap 17252
Dumping heap to E:\heapDump.jmap ...
Heap dump file created
Gdzie 17252 to vmid (wybrany z góry).
Heap wysypisko zostanie wygenerowany w E: \ heapDump.jmap
teraz używać Jhat Jhat służy do analizowania zrzut zbierania śmieci w Javie -
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.
Domyślnie, to będzie uruchomić serwer hTTP na porcie 7000. Następnie udamy się do http://localhost:7000/
Dzięki uprzejmości JMAP, How to monitor and analyze the garbage collection in 10 ways
Czy próbowałeś 'jmap -heap> DumpFile.txt'? –
ten plik otwiera się dobrze w Eclipse MAT, po prostu daj mu .hprof rozszerzenie – iTake
Zobacz także http://stackoverflow.com/questions/185893/how-do-i-ananyzyz-a-hprof-file – rogerdpack