async-profiler results overwritten with multiple forks

Jonas Konrad me at yawk.at
Thu Sep 21 08:25:42 UTC 2023


Hi,

I have a SingleShotTime benchmark that I want to profile with 
async-profiler. Because I'm measuring startup time, I am running a batch 
of forks. However it seems that the profile output of each fork has the 
same path, so I only get the result of a single fork:

Secondary result 
"io.micronaut.http.bench.SimpleControllerBenchmark.getSomeJson:·async":
Async profiler results:
 
/home/yawkat/dev/mn/micronaut-core-scratch/io.micronaut.http.bench.SimpleControllerBenchmark.getSomeJson-SingleShotTime/collapsed-cpu.csv
Async profiler results:
 
/home/yawkat/dev/mn/micronaut-core-scratch/io.micronaut.http.bench.SimpleControllerBenchmark.getSomeJson-SingleShotTime/collapsed-cpu.csv
Async profiler results:
 
/home/yawkat/dev/mn/micronaut-core-scratch/io.micronaut.http.bench.SimpleControllerBenchmark.getSomeJson-SingleShotTime/collapsed-cpu.csv
… you get the idea.

It seems like the path should include a fork number. Am I missing an 
option to do this? Otherwise I can make a patch.

It would also be nice to have some form of coalescing to get the results 
as a single flame graph, but I can do that in an external script since 
it seems like it would be a more difficult change.

- Jonas


More information about the jmh-dev mailing list