JVM tool guide · profilingJDK Mission Control (JMC): Analyze JFR Recordings & Live JVMs
JDK Mission Control (JMC) is the rich analysis client for Java Flight Recorder data. It opens .jfr recordings and shows flame graphs, allocation and lock profiles, GC pause timelines, and exception/latency breakdowns — turning raw JFR events into a decision-ready view.
JMC also connects to live JVMs via JMX and has long been the standard way to make sense of the 'black box' JFR produces in production.
Official JDK Mission Control (JMC) project
Open a recording
Launch JMC and open a .jfr file; the automated analysis gives a prioritized list of findings (e.g., long GC pauses, lock contention) plus manual views.
# Launch JMC (bundled with Oracle JDK or from the openjdk/jmc releases)
jmc
Flame view
The Flame View renders the sampled stack top-down so you can see where CPU or allocations concentrate across the whole recording.
GC pause view
The Garbage Collection view plots pause duration and heap used over time — quickly spot stop-the-world spikes and their cause (young vs old GC, concurrent phases).
Lock & exceptions
JFR's latency/lock events are surfaced as contention and object-wait analysis plus exception breakdowns, helping you find blocked threads and hot exceptions.
Trend across recordings
JMC has an automated analysis report that compares findings; use it as the first read of any new recording.
Quick startGet productive in minutes
Record then analyze
Capture a JFR file from a live JVM and open it in JMC.
jcmd <pid> JFR.start duration=60s filename=/tmp/app.jfr
jmc /tmp/app.jfr
Last updated August 2026 · JVM Tools is independent and not affiliated with Oracle.