Java 为谷歌卡尺的基准指定其他尺寸

Java 为谷歌卡尺的基准指定其他尺寸,java,benchmarking,caliper,Java,Benchmarking,Caliper,我正在使用GoogleCaliper(最新的主代码)跨两个维度对四段代码进行基准测试。例如,以下基准方法: @Benchmark mechanismOneBreadth(...) @Benchmark mechanismOneDepth(...) @Benchmark mechanismTwoBreadth(...) @Benchmark mechanismTwoDepth(...) 我想做的是用一些额外的维度来注释每个基准,以便在结果应用程序上显示/操作,这样我可以比较一个深度和一个宽度,但

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

@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上显示的参数非常相似,但我不能使用参数,因为在每种情况下调用的代码都不同。当前版本的卡钳有没有办法做到这一点

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

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


PS:如果某些组合没有意义,您可以使用
抛出新的skipthiscenarioexception
,假设您使用的是当前版本(我使用的是git的版本,不知道发布了什么)。

是的,我开始这么做,但它有点复杂。。。我的问题简化了一点,恐怕这是唯一的办法。我唯一的问题是,有些组合毫无意义。我想,你需要在你的问题中添加一些无聊的细节来获得更多的信息。谢谢,我能够简化我的问题空间,使之成为可能。我接受你的回答。