我应该使用'-server'选项运行JMH基准测试

时间:2013-12-09 10:59:51

标签: java benchmarking jmh

我使用的是JMH,一个OpenJDK微基准测试工具。构建过程创建microbenchmarks.jar,我使用java -jar调用并传递jar名称和JMH参数。

我想知道我们应该使用-server选项运行基准测试吗?为什么?

换句话说,我应该用:

运行我的基准测试
java -server -jar microbenchmarks.jar ...(jmh args)

2 个答案:

答案 0 :(得分:8)

嗯,这取决于你想要衡量的是什么。在大多数情况下,计算机上的默认JVM模式就是复制普通Java应用程序将遇到的相同条件。

因此,我们通常不会将-server添加到基准测试运行中,因为在大多数机器上,人体工程学本身会隐式选择它,请参阅Server Class Machine Detection

答案 1 :(得分:3)

这完全取决于您想要进行基准测试 - 如果您想使用服务器JVM特性来衡量系统在运行面向服务器的工作负载时的行为方式,那么您应该使用该选项

另请参阅 - What is JVM -server parameter?,表示-server开关也可以执行更好的JIT。