根据JEP 230: Microbenchmark Suite的说法,存在一个内置于Java 12的微基准套件.JEP解释说它基本上是JMH,但不需要使用Maven / Gradle明确依赖它。但是,它没有指定如何访问属于套件的类/注释来执行基准测试。
我的问题是:
module-info.java
中使用特定的Java模块才能使用此套件吗?你的解释是不正确的。 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-math3,jmh-core,jmh-generator-annprocess和jopt-simple。