Beide Tools sind Teil des JDK (liegen dort unter bin
):
- jstack: Erstellt Thread-Dumps der laufenden Java-VM. z.B. so
jstack -l <pid>
Wie man das unter Windows macht, dazu stehen hier ein paar Tipps. Inklusive Hinweise auf
PsExec.exe
, wenn man unter Windows auch als Admin nicht die nötigen Recht hat, um Services „anzuschauen“. -
VisualVM (bzw.
jvisualvm
) ist grafisch und deutlich mächtiger. Es verbindet sich zu einer laufenden Java-VM und kann dann z.B.- Heap-Auslastung, CPU-Usage (inkl. GC) anzeigen.
- Threads detailiert anzeigen.
- Thread-Dumps, Heap-Dumps erstellen.
- CPU- und Memory-Profiling (inkl. AdHoc-Instumentierung).
Ja, da gibt es noch viel mehr…