为Google Caliper指定基准的其他尺寸

时间:2014-10-18 19:29:07

标签: java benchmarking caliper

我正在使用Google Caliper(最新的主代码)来跨两个维度对四段代码进行基准测试。例如,以下基准方法:

@Benchmark mechanismOneBreadth(...)
@Benchmark mechanismOneDepth(...)
@Benchmark mechanismTwoBreadth(...)
@Benchmark mechanismTwoDepth(...)

我想要做的是在结果应用程序上为显示/操作添加一些额外维度来注释每个基准,这样我可以比较一个深度和一个宽度,但也可以比较一个深度和两个深度和一宽度,两宽度。例如:

@Benchmark @Dimensions({"one", "breadth"}) mechanismOneBreadth(...)
@Benchmark @Dimensions({"one", "depth"}) mechanismOneDepth(...)
@Benchmark @Dimensions({"two", "breadth"}) mechanismTwoBreadth(...)
@Benchmark @Dimensions({"two", "depth"}) mechanismTwoDepth(...)

指定的尺寸非常类似于在UI上显示的参数,但我不能使用参数,因为被调用的代码在每种情况下都不同。有没有办法用当前版本的Caliper做到这一点?

1 个答案:

答案 0 :(得分:1)

  

指定的尺寸非常类似于在UI上显示的参数,但我不能使用参数,因为被调用的代码在每种情况下都不同。

但你可以(我经常这样做)。只需编写一个方法来测试params并调度到您想要的方法。整个循环发生在内部,开销完全可以忽略不计,为什么不呢?

PS:如果某种组合毫无意义,你可以使用throw new SkipThisScenarioException,假设你使用的是当前版本(我正在使用git中的那个,不知道发布了什么)。