
Unbiased Java CPU profiling with JFR in JDK 25 | Datadog
7/22/2026
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.





