得益于OPENJDK的贡献,JAVA领域出现了JMH这样的微基准性能测试利器。
平时在对比两个功能实现的时候,预热,多次测试,平均值,性能度量等要考虑一堆要素,使用JMH,可以通过注解的方式,非常快速的解决这些常见的诉求,使得开发人员只要聚焦在被测试的代码段上就好了。
介绍JMH详情用法的很多,这里只提两点,第一个就是POM依赖的正确引入,第二个就是如何运行起来。
一、POM依赖引入
</dependencies>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.21</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.21</version>
<scope>test</scope>
</dependency>
</dependencies>
注意,一定要记得引入第二个。否则。。。
二、如何运行起来
看起来这个问题是一个不应该存在的问题,但是我看了一堆JMH的文章,大家都在认真的介绍JMH的各种特性,但是对于初学者来说,先把例子跑起来,最直观的感受才会出来,才会有继续深入学习下去的动力,否则运行都运行不起来。看着JMH的说明,大脑做CPU进行程序模拟和幻想么?
安装JMH插件:JMH Java Microbenchmark Harness
安装完插件后,在idea的代码行,JMH相关代码行的左侧,才会出现类似JUNIT那样的效果。
最后说一句,如果运行报错了,说缺少什么List文件之类的,检查一下,是不是引入依赖的时候,少引入了第二个注解处理器的依赖。