@OperationsPerInvocation
Java Microbenchmarking Harness (JMH)中的注释 JavaDoc指出:
value
公共抽象 int 值
Returns:
每个 Benchmark 调用的操作数。默认值:1
作为 JMH 的新手,我想知道这里指的是什么类型的操作(字节码操作、汇编代码操作、Java 操作等)。
这个问题自然是指 JMH 中所有使用“操作”一词的地方(文档、输出、评论等)(例如“操作/时间”单位或“时间单位/操作”)。
@OperationsPerInvocation
Java Microbenchmarking Harness (JMH)中的注释 JavaDoc指出:
value
公共抽象 int 值
Returns:
每个 Benchmark 调用的操作数。默认值:1
作为 JMH 的新手,我想知道这里指的是什么类型的操作(字节码操作、汇编代码操作、Java 操作等)。
这个问题自然是指 JMH 中所有使用“操作”一词的地方(文档、输出、评论等)(例如“操作/时间”单位或“时间单位/操作”)。
在 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
调用。