jmh中的操作数究竟是多少?

时间:2015-09-11 15:40:09

标签: java benchmarking jmh

Java Microbenchmarking工具(jmh)中的注释@OperationsPerInvocation的Javadoc声明:

  

value public abstract int value

     

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

是jmh的新手我想知道这里的操作类型(字节代码操作,汇编代码操作,java操作......)。

编辑(进一步澄清):这个问题自然是指jmh中的所有地方(文档,输出,评论......),其中术语'操作'用来。 (例如,操作/时间单位或时间单位/操作)。有关简明说明,请参阅下面接受的答案。

1 个答案:

答案 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个调用。