
7/22/2026 · Jaroslav Bachorík, Scott Gerring
What this post added
This post details the evolution of Java CPU profiling, highlighting the limitations of JFR's ExecutionSample for CPU-bound workloads and the challenges of using unsupported JVM internals like AsyncGetCallTrace. It introduces the new JFR CPUTimeSample event in JDK 25, which, combined with cooperative stack walking, provides a more accurate and stable CPU profiling mechanism by sampling based on actual CPU time rather than just observed thread activity.