Test
Benchmark
JMH
jmh(Java Microbenchmark Harness) 是 Java 微基准测试框架,可以用于比较 Java 程序的性能好坏
万物皆可 hello world:
|
设置 @Warmpup(iterations = 1, time = 1, timeUnit = TimeUnit.SECONDS)
和 @Mesurement
为迭代次数和每次运行时间
@BenchmarkMode(Mode.xxx)
设置输出的类型
Throughput
吞吐量模式,即没单位时间方法执行多少次AverageTime
平均耗时测试SampleTime
抽样测试,会采样输出最快的,99% 快的等SingleShotTime
冷启动模式,此方法在一轮中只会执行一次,用于测试冷启动性能All
以上四种模式都测
@OutputTimeUnit
设置输出的时间单位
@State(Scope.xxx)
描述了作用域
Thread
不同线程下不同对象Benchmark
整个测试只使用一个对象
可以写在整个测试类外面,作为默认 State
@Setup
在 benchmark 之前执行,@TearDown
在结束后执行
可以配置作用的 Level:
Trail
整个 benchmarkIteration
每个迭代Invocation
每个方法调用
@Fork(0)
表示在当前线程中执行,@Fork(n)
表示在 n 个新的 JVM 中运行
可以使用 JMH Visualizer 或 JMH Visual Chart 可视化结果