Skip to main content

Advancing Java Profiling: Achieving Precision and Stability with JFR , eBPF and user context

UA2.118 (Henriot) | Day 1 | 17:30 - 17:55 | Speakers: Johannes Bechberger, Jaroslav Bachorik

Advancing Java Profiling: Achieving Precision and Stability with JFR , eBPF and user context
A picture of a devroom at FOSDEM 2024
Open in browser

Notes

Abstract

Java developers struggle with the trade-off between precise profiling and application stability. Unofficial methods like AsyncGetCallTrace offer precision but risk crashes, while official APIs such as JVMTI, JMX, and StackWalker are stable but biased due to safepoint polling. Java Flight Recorder (JFR) reduces this bias but introduces interpolation errors.

This talk addresses these challenges with three key topics: • Combining precise sampling with JFR’s stability to remove biases without sacrificing reliability. • Using eBPF probes and examining JVM internals for safer, detailed profiling. • Enhancing precision with user-supplied profiling contexts.

We will review the history of Java profilers and discuss the future of JVM profiling, with a focus on CPU profiling. Attendees will gain insights into new methods aimed at achieving accurate, stable performance analysis in Java applications, comparing them with async-profiler and existing tools.

Speakers

Johannes Bechberger
Jaroslav Bachorik

Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.