我正在使用JMH,一个 OpenJDK 微基准测试工具。构建过程创建microbenchmarks.jar
我调用java -jar
并传递 jar 名称和 JMH 参数。
我想知道我们是否应该使用-server
选项运行基准测试,为什么?
换句话说,我应该运行我的基准测试:
java -server -jar microbenchmarks.jar ...(jmh args)
我正在使用JMH,一个 OpenJDK 微基准测试工具。构建过程创建microbenchmarks.jar
我调用java -jar
并传递 jar 名称和 JMH 参数。
我想知道我们是否应该使用-server
选项运行基准测试,为什么?
换句话说,我应该运行我的基准测试:
java -server -jar microbenchmarks.jar ...(jmh args)
好吧,这取决于您要测量的内容。在大多数情况下,机器上的默认 JVM 模式是您复制普通 Java 应用程序将遇到的相同条件所追求的。
因此,我们通常不会添加-server
到基准测试运行中,因为在大多数机器上,人体工程学本身会隐式选择它,请参阅服务器类机器检测。
这完全取决于您想要进行基准测试 - 如果您想使用服务器 JVM 特性来衡量系统在运行面向服务器的工作负载时的行为方式,则应该使用该选项
另请参阅 -什么是 JVM -server 参数?,说明-server
交换机也执行了更好的JITting。