我有一些我正在尝试分析的 JMH 基准。我想启用 GC 日志记录以查看生成了多少垃圾,但我不知道如何传递 JVM 参数。我知道 JMH 在 fork 的 JVM 中运行基准测试,所以对我来说如何做到这一点并不是很明显。我正在使用 SBT .
最佳答案
如果我正确阅读了 sbt-jmh 文档,它将使用 jmh:run ...
将应用程序选项传递给 JMH runner .因此,让 JMH 命令行接受 --jvmArgs "..."
,我会尝试做 jmh:run --jvmArgs "-XX:+PrintGCDetails"
.或者,正如@apangin 提到的,添加 @Fork(jvmArgsAppend = "-XX:+PrintGCDetails")
.
但是对于您的特定用例——“看看产生了多少垃圾”——使用捆绑的 GC 分析器可能是更好的主意,用 -prof gc
激活。 .请参阅 JMHSample_35_Profilers.java#l71 中的示例.
关于jvm - 将 JVM 参数传递给 JMH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293445/