jvm - 将 JVM 参数传递给 JMH

标签 jvm sbt jmh

我有一些我正在尝试分析的 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/

相关文章:

scala - SBT 0.13 taskKey 宏不适用于 [Unit]?

java - JMH 基准测试 - 比较替代实现的运行时间的简洁方法

java - JMH 多个基准 单独运行的不同结果

scala - 关于复制案例类的表现

java - java中的普通指令和快速指令有什么区别(例如aload和fast_aload)

java - 如何从 JVM 获取熵?

jvm - 在一个运行时实例中运行 java 程序

java - 在 Java 中克隆对象时,字符串会发生什么?

scala - 如何在 SBT 中的 onLoad Hook 上应用设置更改?

java - 尝试使用 sbt 构建一个 scala 项目。 scala-swing Unresolved 依赖关系