JMH常用方式
常用注解
@Benchmark
测试的方法的注解
@Warmup
@Measurement
@BenchmarkMode
都是配置注解
@State
运行的参数注解
@Setup
配套@State使用,指定初始化的方法
@TearDown
防止数值溢出的方法
调用方式
在 Main 方法中,通过 org.openjdk.jmh.runner.Runner 类去运行 org.openjdk.jmh.runner.options.Options 实例即可。这里的重点在于 Options 对象的构建。官方提供了一个OptionsBuilder对象去构建。这个 Builder对象是流式的。它的常用方法及对应的注解形式如下:
方法名 | 参数 | 作用 | 对应注解 |
---|---|---|---|
include | 要运行基准测试类的简单名称 eg. StringConnectBenchmark | 指定要运行的基准测试类 | - |
exclude | 不要运行基准测试类的简单名称 eg. StringConnectBenchmark | 指定不要运行的基准测试类 | - |
warmupIterations | 预热的迭代次数 | 指定预热的迭代次数 | @Warmup |
warmupBatchSize | 预热批量的大小 | 指定预热批量的大小 | @Warmup |
warmupForks | 预热模式:INDI,BULK,BULK_INDI | 指定预热模式 | @Warmup |
warmupMode | 预热的模式 | 指定预热的模式 | @Warmup |
warmupTime | 预热的时间 | 指定预热的时间 | @Warmup |
measurementIterations | 测试的迭代次数 | 指定测试的迭代次数 | @Measurement |
measurementBatchSize | 测试批量的大小 | 指定测试批量的大小 | @Measurement |
measurementTime | 测试的时间 | 指定测试的时间 | @Measurement |
mode | 测试模式: Throughput(吞吐量), AverageTime(平均时间),SampleTime(在测试中,随机进行采样执行的时间),SingleShotTime(在每次执行中计算耗时),All | 指定测试的模式 | @BenchmarkMode |