Java Microbenchmarking工具(jmh)中的注释@OperationsPerInvocation的Javadoc声明:
value public abstract int value
返回:每个Benchmark调用的操作数。默认值:1
是jmh的新手我想知道这里的操作类型(字节代码操作,汇编代码操作,java操作......)。
编辑(进一步澄清):这个问题自然是指jmh中的所有地方(文档,输出,评论......),其中术语'操作'用来。 (例如,操作/时间单位或时间单位/操作)。有关简明说明,请参阅下面接受的答案。答案 0 :(得分:9)
在JMH,"操作"是一个抽象的工作单元。参见例如样本结果:
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod avgt 5 5.068 ± 0.586 ns/op
此处,每次操作的性能为5.068纳秒。
名义上,一个操作是一个@Benchmark
调用。某些注释(如@OperationsPerInvocation
)可能会告诉单个@Benchmark
调用意味着N个操作。类似地,批量运行,例如通过@Measurement(batchSize = N)
可以说一个操作包含N @Benchmark
个调用。