首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java9下运行jmh测试失败

在java9下运行jmh测试失败
EN

Stack Overflow用户
提问于 2017-11-27 14:13:26
回答 1查看 1.5K关注 0票数 5

因此,基本上,我试图以以下形式运行一个测试:

代码语言:javascript
复制
@Benchmark
@Fork(jvmArgsAppend = "-Djava.lang.invoke.stringConcat=java.lang.invoke.StringConcatFactory.Strategy.BC_SB", value = 1)
public String java9StringBuilder(ThreadState state) {
    // some implementation here
}

运行它时:

代码语言:javascript
复制
java -jar benchmarks.jar MyFullClassNameHere -v extra

不幸的是,它在forked VM failed with exit code 1中失败了,不再有“冗长”的输出。

我做错什么了?

我确实收到了这样的警告:

警告:未知模块: org.openjdk指定为--添加-导出 警告:发生了非法反射访问操作。 警告: org.openjdk.jmh.util.Utils非法对java.io.Console.cs字段的反射访问(文件:/Path/Here/benchmarks.jar s.jar) 警告:请考虑向org.openjdk.jmh.util.Utils的维护人员报告 警告:使用 警告:所有非法访问操作都将在以后的版本中被拒绝。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-27 21:01:40

本例中的Java 9没有什么问题。您正在向分叉VM提供JVM选项,您是否尝试过在不使用JMH的情况下运行该选项?然后您会注意到命令是不正确的,正确的形式是:

代码语言:javascript
复制
- @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=java.lang.invoke.StringConcatFactory.Strategy.BC_SB")
+ @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=BC_SB")

...because BC_SBjava.lang.invoke.StringConcatFactory.Strategy枚举中的枚举常数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47512991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档