我正在使用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做到这一点?
答案 0 :(得分:1)
指定的尺寸非常类似于在UI上显示的参数,但我不能使用参数,因为被调用的代码在每种情况下都不同。
但你可以(我经常这样做)。只需编写一个方法来测试params并调度到您想要的方法。整个循环发生在内部,开销完全可以忽略不计,为什么不呢?
PS:如果某种组合毫无意义,你可以使用throw new SkipThisScenarioException
,假设你使用的是当前版本(我正在使用git中的那个,不知道发布了什么)。