通常,当我想测试性能时,我在运行代码之前和之后使用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。