java - 如何使用 Java 12 的 Microbenchmark Suite?

标签 java benchmarking microbenchmark jmh java-12

根据 JEP 230: Microbenchmark Suite ,存在一个内置于 Java 12 的微基准测试套件。JEP 解释说它基本上是 JMH,但不需要使用 Maven/Gradle 显式依赖它。但是,它没有指定如何访问属于该套件的类/注释以执行基准测试。

我的问题是:

  • 我的 module-info.java 中是否需要特定的 Java 模块才能使用此套件?
  • 该套件的类/注释位于哪些包中?
  • 此套件与 JMH 之间有什么主要区别吗?

最佳答案

您的解释不正确。 JEP 说:

Add a basic suite of microbenchmarks to the JDK source code, and make it easy for developers to run existing microbenchmarks and create new ones.

即这不一定是使其成为 JDK 发行版的东西,只是添加到源代码存储库中以便更容易在 JDK 代码上运行基准测试的东西。虽然,公平地说,事实是 listed作为 JDK 12“功能”之一似乎有点误导。

可以使用 OpenJDK 构建系统运行基准测试。从 https://github.com/openjdk/jdk(或包含 JEP 的其他存储库)克隆 OpenJDK 源代码后,您可以运行基准测试,例如通过使用:

make test TEST="micro:java.lang.reflect"

基准测试位于 \test\micro\ 目录中。另请参阅文档:https://github.com/openjdk/jdk/blob/master/doc/testing.md#microbenchmarks

此外,这要求您在生成构建配置时指定 JMH 及其依赖项:

bash configure --with-jmh="/path/to/jmh/jars"

指定的路径应指向包含 JMH jar 的目录。所需的 jar 是:commons-math3 , jmh-core , jmh-generator-annprocess , 和 jopt-simple .

关于java - 如何使用 Java 12 的 Microbenchmark Suite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55243249/

相关文章:

java - mvn -版本错误 : We cannot execute/usr/libexec/java_home/bin/java

java - 从 jar 加载自定义类时出现 ClassCastException

javascript - 对 Javascript、PHP 和 Dart 进行基准测试

java - 如何使图像相对于其框架缩放(ImageJ)

Java 类属性被 null json 属性覆盖

perl - BaseX : how to set up 中的基准测试

c# - 测量速度时List.Contains和List.IndexOf的行为不一致

java - 循环习语的奇怪 JIT 悲观化

当程序从终端运行时,clock_gettime 需要更长的时间来执行

Rstudio 正在更改我的默认 R Notebook 输出