Java Flight Recorder Tutorial: How to Profile Java Applications

High CPU? GC spikes? Slow startup? Logs and metrics can show symptoms — but not always what the JVM is actually doing. Java Flight Recorder (JFR) gives you a precise, low-overhead view of JVM behavior — safe even in production. In this video, you’ll learn how to use JFR to identify real bottlenecks: CPU hotspots, memory allocation pressure, thread contention, and I/O stalls. We walk through the full workflow: starting recordings with JVM flags, controlling them via jcmd, running JFR inside Docker containers, and attaching to live systems using ephemeral containers. Then we analyze a real Spring Boot recording in JDK Mission Control — breaking down GC behavior, allocation patterns, thread states, and method-level hotspots. If you want to move from symptoms to root cause with more confidence — this is the approach. Full article with commands and examples: https://bell-sw.com/blog/how-to-profi... 00:00 — Java Flight Recorder Tutorial 00:23 — What is JFR? 01:25 — JFR Features Beginners Should Know 03:13 — Ho w to Use JFR Locally 04:48 — How to Use JFR in Containers With Dockerfile 05:39 — How to Use JFR in Containers With Buildpacks 08:08 — How to Analyze a Recording in Mission Control