我想从使用框架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
。
答案 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