I understand the motivation to decouple the command line configuration from
what we expose to end users, and to an extent, agree with the reasoning.
However, for folks like me that know the command line options and regularly
do things that you might not have planned out, I'd appreciate an escape
hatch where I can pass my raw commands.  Whatever you end up implementing,
there's almost certainly commands that experienced async-profiler folks
will want to use that weren't planned for.

I am also not particularly interested in learning another syntax only to
have it transformed into the thing I want to use.  I expect that would be a
fairly simple flag (nodetool profile --raw xyz) that would skip the parse
logic, so hopefully it's not too much trouble to add.  Reverse engineering
the async profiler syntax into the thing we decide to use is, at least for
me, will be a source of frustration.

Thanks,
Jon



On Wed, Jun 18, 2025 at 4:01 PM Abe Ratnofsky <a...@aber.io> wrote:

> 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