Another vote in favor of including async-profiler as a library in C*. The new 
heatmap format in async-profiler 4.0[1] is excellent and makes long-running 
profiles miles more useful than a plain flamegraph, but it requires a 
post-processing step after a JFR is collected, which would require a dependency 
on jfr-converter.jar[2]. Exposing the JFR files directly would be reasonable 
but slightly less useful, and the post-processed heatmap HTML files are much 
smaller and self-contained. A recent example on my machine shows HTML at 1/20th 
the size of the raw JFR dump, which is meaningful especially for uploading to 
Jira.

Note that JDK25 will have experimental support for better CPU profiling[3], but 
async-profiler is still more mature and featureful, especially for other 
profiling types (wall, alloc).

[1]: 
https://github.com/async-profiler/async-profiler/blob/master/docs/Heatmap.md
[2]: 
https://github.com/async-profiler/async-profiler?tab=readme-ov-file#stable-release-40
[3]: https://mostlynerdless.de/blog/2025/06/11/java-25s-new-cpu-time-profiler-1/

Reply via email to