Future-proofing JVM profiling by Richard Startin and Jaroslav Bachorík
As software systems evolve in complexity and scale, ensuring optimal performance becomes increasingly challenging yet vital. Welcome to the era of distributed, always-on, production profiling. This type of profiling introduces a range of new challenges, many of which aren’t addressed by current JVM profiling tools, whether it's the built-in JFR (JDK Flight Recorder) or the JVMTI profiling APIs. While it's feasible to craft custom profiling solutions based on deep knowledge of the JVM internals, they are intrinsically fragile. Future Java versions could easily disrupt them since there's no binding agreement between these tools and the JVM. In this talk, I will discuss the various challenges we encountered while developing our continuous production profiler and the strategies we used, which involve a combination of JVMTI APIs, unofficial APIs, and workarounds. To conclude, I will propose enhancements to the JFR and/or JVMTI APIs to simplify the creation of advanced and stable profilers.
Richard Startin
Datadog
Recorded at Jfokus 2024 in Stockholm 7th of february
http://www.jfokus.se