0

我正在使用 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 做到这一点?

4

1 回答 1

1

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

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

PS:如果某些组合没有意义,您可以使用throw new SkipThisScenarioException,假设您使用的是当前版本(我正在使用来自 git 的版本,不知道发布了什么)。

于 2014-10-18T20:12:35.417 回答