我有一些JMH基准,我想分析一下。我希望启用GC日志记录,以查看生成了多少垃圾,但我不知道如何传递JVM参数。我知道JMH在分叉JVM中运行基准测试,所以我并不清楚如何做到这一点。我在用SBT。
发布于 2016-03-29 21:27:23
如果我正确地读取sbt文档,它会将应用程序选项传递给带有jmh:run ...的JMH。因此,如果JMH命令行接受--jvmArgs "...",我将尝试执行jmh:run --jvmArgs "-XX:+PrintGCDetails"。或者,正如@apangin提到的,添加@Fork(jvmArgsAppend = "-XX:+PrintGCDetails")。
但是对于您的特定用例--“查看生成了多少垃圾”--使用用-prof gc激活的捆绑GC分析器可能会更好。参见Profilers.java#l71中的示例。
发布于 2016-03-29 19:49:03
使用@Fork注释:
@Benchmark
@Fork(jvmArgsAppend = "-XX:+PrintGCDetails")
public void someBenchmark() {
...
}请注意,传递给JMH的JVM参数也被传播到分叉基准测试。
https://stackoverflow.com/questions/36293445
复制相似问题