【问题标题】:Specify additional dimensions for benchmarks to Google Caliper为 Google Caliper 的基准指定其他维度
【发布时间】:2014-10-19 04:12:35
【问题描述】:

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

【问题讨论】:

    标签: java benchmarking caliper


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我开始这样做,但它有点复杂......我的问题被简化了一点。
    • @Raman 恐怕,这是唯一的方法。我曾经遇到过的唯一问题是某些组合毫无意义。我想,您需要在问题中添加一些无聊的细节才能获得更多信息。
    • 谢谢,我能够简化我的问题空间,使其变得可行。我接受你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多