当前位置: 首页 > 知识库问答 >
问题:

将JVM参数传递给JMH

毕瀚
2023-03-14

我有一些JMH基准测试,我正在尝试分析。我想启用 GC 日志记录以查看生成了多少垃圾,但我不知道如何传递 JVM 参数。我知道JMH在分叉的JVM中运行基准测试,所以对我来说如何做到这一点并不是很明显。我正在使用断续器。

共有2个答案

姬博瀚
2023-03-14

使用@Fork注释:

@Benchmark
@Fork(jvmArgsAppend = "-XX:+PrintGCDetails")
public void someBenchmark() {
    ...
}

请注意,传递给JMH的JVM参数也会传播到分叉基准测试。

黄永怡
2023-03-14

如果我正确阅读了sbt-jmh文档,它会将应用程序选项传递给jmh-runner,其中包含jmh:run…。因此,让JMH命令行接受--jvmArgs“…”,我将尝试执行JMH:run--jvmArms“-XX:PrintGCDetails”。或者,如@apangin所述,添加@Fork(jvmArgsAppend=“-XX:PrintGCDetails”)

但是对于您的特定用例——“查看生成了多少垃圾”——使用捆绑的GC分析器可能更好,该分析器由-prof gc激活。参见JMHSample_35_Profilers.java#l71.的示例

 类似资料:
  • 问题内容: 我有几个系统都需要将相同的属性加载到JVM。我可以使用-D标志一次加载一个属性,但是我正在寻找一种可以一次加载整个文件中所有属性的东西。例如: 我可以一次将–options-file = blah.properties添加到网络上的所有jvm中,然后仅更改属性文件,该文件可以是网络共享上的单个中央文件。 谢谢, 编辑:任何参数或命令也必须在Windows环境中工作。因此,任何针对uni

  • 问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对

  • 我在解一个有很多常数的非线性方程 我创建了一个用于解决以下问题的函数: 然后我想做: 但是正在解包并向函数传递太多参数,因此我得到: TypeError:terminalV()正好接受2个参数(给定6个) 那么,我的问题是,我是否可以通过某种方式将元组传递给调用的函数?

  • 问题内容: 在我的RCP应用程序中,左侧有一个用于导航的视图,右侧有一个用于视图的文件夹。透视图看起来像这样: 我想根据用户在导航树中选择的内容打开不同的视图。认为这并不难。我的导航树视图: 这似乎很好。仅有一个小问题:我需要以某种方式将对象(例如,selectedItem)传递给我的视图,以使用户与其内容进行交互。我怎么做? 我看到了一些示例,其中一些同事编写了自己的视图,并将其放置在右侧。然后

  • 问题内容: 我正在尝试为我的程序制作验证类。我已经建立了与MySQL数据库的连接,并且已经在表中插入了行。该表由,和领域。现在,我想通过构造函数的参数在数据库中选择特定的行。 但这似乎没有用。 问题答案: 您应该使用方法设置。这既可以确保语句的格式正确,又可以防止: Java教程中有一个很好的教程,说明如何正确使用。

  • 问题内容: 我正在寻找一种将变量或字符串或任何东西传递给JButton的匿名actionlistener(或显式actionlistener)的方法。这是我所拥有的: 现在,我只是声明是一个全局变量,但是我讨厌这种工作方式。有更好的选择吗? 问题答案: 创建一个实现该接口的类。 提供具有参数的构造函数。 问题?