通常,当我想测试性能时,我在运行代码之前和之后使用System.nanoTime()函数,然后进行减法运算。最近我注意到人们正在使用

@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)


它是openjdk中JMH的一部分。

我们正在使用Oracle jdk。我想知道是否有类似的工具,或者是否有另一种方式来构建,运行和分析纳/微/微/宏基准,而不是编写System.nanoTime。

最佳答案

从JMH网站:


  JMH是用于构建,运行和分析以Java和其他针对JVM的其他语言编写的nano / micro / milli / macro基准测试的Java工具。


因此,无论您安装的是OpenJDK还是Oracle的JDK,JMH都可以工作。 OpenJDK和Oracle的JDK都是针对JVM的语言的实现,因此我认为没有问题。

只是说明-JMH是作为OpenJDK的一部分维护的,并不意味着它专门用于OpenJDK。

10-08 00:10