JMH介绍
2020-08-21 • 预计阅读时间 1 分钟
2020-08-21 • 预计阅读时间 1 分钟
Java Microbenchmarks Hard 是一个Java的性能测试框架。针对的主要是代码片段或者简单的函数。虽然总是用jmeter 来做性能测试,但是想知道某个函数具体的性能信息的话,还是不太方便。JMH就是为了这种场景诞生的。
这是OpenJDK的一个子项目,里面还是有挺多好用的东西。
可以参考如下的两篇文章
使用的时候可以搭配gradle的插件进行
buildscript {
    repositories {
        jcenter()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "me.champeau.gradle:jmh-gradle-plugin:0.5.0"
    }
}
plugins {
    id 'org.springframework.boot' version '2.3.3.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}
apply plugin: "me.champeau.gradle.jmh"
public| 模式 | 说明 | 
|---|---|
| Throughput | 统计每秒执行的次数 | 
| Average Time | 统计平均执行时间 | 
| Sample Time | 统计函数执行的时间,包含,最小,最大 | 
| Single Shot Time | 单次执行时间,在测冷启动的时候用得到 | 
| All | 统计以上所有 | 
默认的模式为Throughput.可以通过函数的注解来配置模式 @Benchmark @BenchmarkMode(Mode.Throughput)
JMH可以通过指定不同的时间单位,来控制结果输出中的时间单位。@OutputTimeUnit(TimeUnit.MINUTES)