jmh 测试只能在 Hotspot 上运行吗?

Bio*_*441 1 java jvm jmh

如何设置 jmh 参数以便可以在不同的虚拟机上运行测试?

我尝试更改 -jvm //虚拟机的路径。

我收到此错误:

Error parsing command line:
 'X' is not a recognized option
<forked VM failed with exit code 1>
<stdout last='20 lines'>
</stdout>
<stderr last='20 lines'>
Error parsing command line:
'X' is not a recognized option
</stderr>
Run Code Online (Sandbox Code Playgroud)

Ale*_*lev 6

JMH 依靠非标准 JVM 设置来获得对 VM 的显式控制(请参阅带有 的确切命令行-v EXTRA)。值得注意的是,-XX:CompileCommand用于强制编译器内联/不内联特定方法。这些非标准选项仅在基于 HotSpot 的 JDK 中可用。

虽然您可以破解 JMH 来使用非 HotSpot 虚拟机,但没有人会测试基准基础设施的关键部分是否可靠运行。换句话说,您正在进入灰色区域,必须在基准测试中寻求非 HotSpot VM 供应商的帮助(如果许可证允许,还可能为其 VM 改造 JMH)。