JMH 中的操作数到底是多少?
What exactly is number of operations in JMH?
JavaJava Microbenchmarking Harness (JMH) 中注释 @OperationsPerInvocation
的文档指出:
value
public abstract int value
Returns:
Number of operations per single Benchmark call. Default: 1
作为 JMH 的新手,我想知道这里指的是什么类型的操作(字节码操作、汇编代码操作、Java 操作等)。
这个问题自然是指 JMH 中所有使用术语 'operation' 的地方(文档、输出、评论等)(例如“operation/time "单位或"时间unit/operation").
在JMH中,"operation"是一个抽象的工作单元。参见例如样本结果:
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
次调用。
JavaJava Microbenchmarking Harness (JMH) 中注释 @OperationsPerInvocation
的文档指出:
value
public abstract int value
Returns:
Number of operations per single Benchmark call. Default: 1
作为 JMH 的新手,我想知道这里指的是什么类型的操作(字节码操作、汇编代码操作、Java 操作等)。
这个问题自然是指 JMH 中所有使用术语 'operation' 的地方(文档、输出、评论等)(例如“operation/time "单位或"时间unit/operation").
在JMH中,"operation"是一个抽象的工作单元。参见例如样本结果:
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
次调用。