当前位置: 首页 > 知识库问答 >
问题:

在java9下运行jmh测试失败

刁英朗
2023-03-14

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

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

运行它时使用:

java -jar benchmarks.jar MyFullClassNameHere -v extra

不幸的是,它失败了,forked VM失败了,退出代码1,没有更多的“详细”输出。

我做错了什么?

我确实收到了这些警告:

警告:未知模块:org.openjdk指定到--add-exports

警告:发生了非法的反射访问操作

警告:所有非法访问操作将在以后的版本中被拒绝

共有1个答案

严恩
2023-03-14

在本例中,Java9没有任何问题。您正在向分叉VM提供JVM选项,您是否尝试使用该选项运行而不首先使用JMH?则您会注意到该命令不正确,正确的形式是:

- @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=java.lang.invoke.StringConcatFactory.Strategy.BC_SB")
+ @Fork(jvmArgs = "-Djava.lang.invoke.stringConcat=BC_SB")

...因为bc_sbjava.lang.invoke.StringConcatFactory.Strategy枚举中的枚举常量。

 类似资料:
  • 我尝试在Eclipse Oxygo4.7上使用Java9。显然,我已经安装了Java9对marketplace氧气的支持。我无法让junit测试工作。我用两个类创建了简单的maven项目: null null 如何在Eclipse中使用Java9运行这个测试?

  • 如何使用JUnit测试在我现有的项目中运行JMH基准测试?官方留档建议制作一个单独的项目,使用Maven阴影插件,并在方法中启动JMH。这是必要的吗?为什么推荐它?

  • 所有测试返回“NosuchBeanDefinitionException:没有'com.example.networkService'类型的合格bean可用:预期至少有1个bean符合autowire候选。依赖项注释:{@org.springframework.beans.factory.annotation.autowired(required=true)}” 这是配置文件application

  • 我试图在JUnit5测试环境中使用JUnit4。事实上,我已经升级了我的pom来使用更高版本的MOckito和POwerMock。到目前为止,所有测试都基于JUnit4。我将平台和vintage依赖项添加到我的pom.xml中。 更早的pom。xml依赖关系

  • 有一种方法可以运行junit测试,只需在“mvn clean install”命令中添加参数?没有使用@Profile注释测试。

  • 我们已经为spark编写了单元测试,在本地模式下有4个线程。 当一个接一个地启动时,例如通过intellij或sbt testOnly,每个测试都运行良好。 当用sbt测试启动时,它们会出现如下错误 我们使用的是一个带有多个子项目的sbt项目,其定义如下: