JVM tool guide · profilingVisualVM: All-in-One Monitoring, Thread & Heap Analysis
VisualVM is a visual tool that bundles many JDK diagnostics into one GUI: live heap and GC charts, CPU/memory sampling, thread and heap dump viewing, and JFR/GC-log analysis. It historically shipped with the JDK and remains popular because it needs no agent and covers the common diagnostics in one window.
Since JDK 9 the JDK no longer bundles VisualVM, but the standalone build (from visualvm.github.io) is free and connects to local and remote JVMs over the attach mechanism or JMX.
Official VisualVM project
Launch and attach
Install from the website, then launch. The 'Local' tree lists attachable JVMs on the same machine; 'Remote' nodes connect via jstatd or JMX.
# Start VisualVM (from the unpacked directory)
./bin/visualvm
Monitor overview charts
The Monitor tab shows live heap, metaspace, classes, and thread counts, plus CPU usage. This is the fastest 'is my JVM healthy' view.
Take a thread dump
Right-click a process and choose Thread Dump; VisualVM opens it in a tree with expandable stack frames. Save as .txt for sharing.
Take / open a heap dump
Right-click -> Heap Dump captures a .hprof and opens it: browse instances, run a basic leak-suspect scan, and query with the built-in OQL console.
Sampling vs profiling tab
The Profiler tab lets you start CPU or Memory sampling on a live process, then shows hot methods / allocation counts per class.
Quick startGet productive in minutes
Monitor + a thread dump in a minute
Launch, attach, and grab a dump.
./bin/visualvm
# File > Add JMX Connection or click a process under Local
Last updated August 2026 · JVM Tools is independent and not affiliated with Oracle.