如何生成jmh基准的动态调用图?

时间:2015-05-05 15:15:42

标签: java call-graph jmh

我想从使用框架callgraph编写的基准中生成jmh。我正在使用https://github.com/gousiosg/java-callgraph。 我已经尝试为jar文件target/benchmarks.jar生成静态调用图并且它可以工作。现在我想生成动态调用图,所以我使用了以下命令:

java -jar target/benchmarks.jar -jvmArgs "-javaagent:target/javacg-0.1-SNAPSHOT-dycg-agent.jar"

但是没有创建输出文件callgraph.txt

1 个答案:

答案 0 :(得分:3)

您是否尝试过为常规Java应用程序创建动态调用图?或者,至少尝试使用javaagent调用主机JVM?纯粹的静态调用图实际上并不意味着动态应该。

如果您尝试动态,那么即使没有使用JMH,您也会意识到它不会“正常工作”。诀窍是“包括”要修改的类:

java -jar ~/projects/jmh/jmh-samples/target/benchmarks.jar \
    -jvmArgs "-javaagent:target/javacg-0.1-SNAPSHOT-dycg-agent.jar=\"incl=org.*\"" \ 
    Hello -f 1 -wi 5 -i 5