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

标签 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>

最佳答案

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

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

关于java - jmh 测试只能在 Hotspot 上运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216546/

相关文章:

java - GC 日志 - VM 操作事件 - 如何跟踪它们

performance - OpenJDK JMH 有时会在结果中打印 (*interrupt*)。这究竟意味着什么?

java - 如何正确使用JMH? ArrayList 示例

Java Swing 如何检测列表选择事件

java - 在 spring 中从 <property> 转换为 p 命名空间时出现问题

jvm - 如何强制 HotSpot JVM 覆盖堆转储文件?

java - 关于增加 JVM 的堆大小

java - 如何创建通用 EJB 类

java - 使用 MessageContext 自定义响应消息

java - 报告 JMH 基准测试的最大堆大小