gpt4 book ai didi

java - Caliper:为什么不使用注释来定义基准?

转载 作者:行者123 更新时间:2023-11-29 05:59:01 24 4
gpt4 key购买 nike

刚刚了解了 Caliper,并浏览了文档 - 它看起来是一个很棒的工具(感谢 Kevin 和 Google 的团队将其开源)。

问题。为什么没有基于注释的机制来为常见用例定义基准?似乎是这样的:

public class Foo {
// Foo's actual code, followed by...

@Benchmark
static int timeFoobar(int reps) {
Foo foo = new Foo();
for (int i = 0; i < reps; ++i) foo.bar();
}
}

将节省几行代码并增强可读性。

最佳答案

我们决定使用 timeFoo(int reps) 而不是 @Time foo(int reps) 有几个原因:

  • 我们还有很多 JUnit 3.8 测试,并且希望与其 testFoo() 方案保持一致。
  • 无需import com.google.caliper.Time
  • 我们最终会将 timeFoo 的基准名称报告为 Foo。这很简单,就是methodName.substring(4)。如果我们使用注释,我们最终会使用更复杂的机制来处理名称,例如 @Time timeFoo(int reps)@Time benchmarkFoo(int reps) @Time foo(int reps).

也就是说,我们正在为 Caliper 1.0 重新考虑这一点。

关于java - Caliper:为什么不使用注释来定义基准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com