JAVA的JMH:微基准性能测试利器

JAVA的JMH:微基准性能测试利器

得益于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文件之类的,检查一下,是不是引入依赖的时候,少引入了第二个注解处理器的依赖。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注