如何使用Java 12的Microbenchmark Suite?

时间:2019-03-19 14:24:27

标签: java benchmarking microbenchmark jmh java-12

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

我的问题是:

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

1 个答案:

答案 0 :(得分:6)

您的解释不正确。 JEP说:

  

JDK源代码中添加一组基本的微基准,使开发人员可以轻松地运行现有的微基准并创建新的微基准。

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

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

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

基准位于\test\micro\目录中。另请参见文档:http://hg.openjdk.java.net/jdk/jdk/raw-file/ddfb658c8ce3/doc/testing.html#microbenchmarks

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

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

所需的jar为:commons-math3jmh-corejmh-generator-annprocessjopt-simple