JMH 提供了一些非常有用的 Profile 帮助我们更加深入的了解基准测试。
JMH 提供的 Profiler 如下
image.png

STACK Profiler

输出JVM堆栈信息,统计程序在执行过程中线程状态,如:RUNNING状态、WAIT 状态所占用的百分比。

测试代码如下:JmhDemo.java
image.png
执行结果
image.png

GC Profiler

GC Profiler 用于分析在基准测试方法中垃圾回收器在 JVM 每个内存空间上所花费的时间。

ClassLoader Profiler

ClassLoader Profiler 可以看到在基准测试方法执行过程中有多少类被加载,考虑到在一个类加载器中同一个类只会被加载一次,所以 Warmup 需要置为 0 ,避免预热加载了基准测试方法所需的所有类。

Compiler Profiler

计算代码执行过程中 JIT 编译器花费的优化时间