考虑到 JMH 的默认用法,我想确保 JMH 基于哪种类型的时间进行测量:CPU 时间还是挂钟时间。
我尝试查看 JMH 官方示例(https://openjdk.java.net/projects/code-tools/jmh/)、教程(如 Jenkov、Baeldung、Mykong 等),但没有找到精确的信息(我承认可能错过了某些基准测试的文档或一般信息)。
例如,在样例 35(https://hg.openjdk.java.net/code-tools/jmh/file/99d7b73cf1e3/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_35_Profilers.java)中,我们有一个输出示例:
Benchmark (type) Mode Cnt Score Error Units
JMHSample_35_Profilers.Maps.test hashmap avgt 5 1553.201 ± 6.199 ns/op
JMHSample_35_Profilers.Maps.test treemap avgt 5 5177.065 ± 361.278 ns/op
因此,我想知道得分列是使用挂钟时间还是CPU时间计算的,以便我可以准确地解释基准测试结果。