介绍
JMH( Java Microbenchmark Harness )是一个用于微测的工具,可以类比成JUNIT,后者用于代码正确性,前者用于代码的性能测试。
开始第一个简单的JMH程序
简单步骤概括:
1.直接打开命令行/console ,通过maven archetype 生成jmh项目
2.然后在项目中编写需要进行微测的方法(可以指定检测输出,循环几次,以及测试数据)
3.maven clean install 打包,然后运行benchmark.jar
第一步,生成JMH项目
//mvn创建命令,此处为了展示方便添加了换行符
//window执行每行末尾可以加上 ^ ,unix执行每行末尾加上 /
mvn archetype:generate
-DinteractiveMode=false
-DarchetypeGroupId=org.openjdk.jmh
-DarchetypeArtifactId=jmh-java-benchmark-archetype
-DarchetypeVersion=1.25
-DgroupId=com.willl
-DartifactId=benchmark-test
-Dversion=1.0
DarchetypeVersion=1.25 //jmh版本
DgroupId=com.willl //改成自己的groupId,如果想要整合成项目中的module,此处记得和父项目相同
DartifactId=benchmark-test //生成的项目名
博主在window cmd中执行:
//cmd中执行注意空格之类的,linux中^换成/
mvn archetype:generate ^
-DinteractiveMode=false ^
-DarchetypeGroupId=org.openjdk.jmh ^
-DarchetypeArtifactId=jmh-java-benchmark-archetype ^
-DarchetypeVersion=1.25 ^
-DgroupId=com.willl ^
-DartifactId=benchmark-test ^
-Dversion=1.0
第二步,在项目中编写自己需要测试的类
使用maven提供的默认类作为参考编写,先不用纠结注解的具体使用
package com.willl;
import org.openjdk.jmh.annotations.Benchmark;
@BenchmarkMode(Mode.AverageTime) //标识测试平均时长
@Warmup(iterations = 2) //理解成热身
@Measurement(iterations = 2) //理解成循环几次,然后算平均
public class MyBenchmark {
@Benchmark //标识需要进行微测
public<