9

@OperationsPerInvocationJava Microbenchmarking Harness (JMH)中的注释 JavaDoc指出:

value 公共抽象 int 值

Returns:每个 Benchmark 调用的操作数。默认值:1

作为 JMH 的新手,我想知道这里指的是什么类型的操作(字节码操作、汇编代码操作、Java 操作等)。

这个问题自然是指 JMH 中所有使用“操作”一词的地方(文档、输出、评论等)(例如“操作/时间”单位或“时间单位/操作”)。

4

1 回答 1

18

在 JMH 中,“操作”是一个抽象的工作单元。参见示例结果:

Benchmark               Mode  Cnt  Score   Error  Units
MyBenchmark.testMethod  avgt    5  5.068 ± 0.586  ns/op

在这里,每次操作的性能是 5.068 纳秒。

名义上,一个操作是一个@Benchmark调用。一些注释,比如@OperationsPerInvocation可能会告诉一个@Benchmark调用意味着 N 个操作。类似地,批处理运行,例如 via@Measurement(batchSize = N)可能会说一个操作包含 N次@Benchmark调用。

于 2015-09-11T20:01:59.763 回答