如何使用Java 12的Microbenchmark Suite?

问题描述 投票:4回答:1

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

我的问题是:

  • 我需要在module-info.java中使用特定的Java模块才能使用此套件吗?
  • 这个套件的类/注释是什么包?
  • 这个套件和JMH之间有什么重大差异吗?
java benchmarking microbenchmark jmh java-12
1个回答
7
投票

你的解释是不正确的。 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"

所需的罐子是:commons-math3jmh-corejmh-generator-annprocessjopt-simple

© www.soinside.com 2019 - 2024. All rights reserved.