4

我知道--benchmark_repetitions旗帜,这不是我需要的。我希望能够为一个基准指定迭代次数。我可以使用一个--benchmark_iterations设置所有基准的迭代次数的标志。

我知道谷歌基准测试很聪明,可以计算出需要多少次迭代才能获得良好的测量结果。这对于大多数用例来说已经足够了,但我的用例不同。我需要能够精确控制迭代次数。

4

2 回答 2

4

BENCHMARK(YourBenchmark)->Iterations(num_ite);会成功的。

您可以为每个基准测试指定迭代。

如果您正在使用BENCHMARK_F,请在构造函数中执行此操作

class BenchmarkBase : public benchmark::Fixture {
public:

    BenchmarkBase() {
        Iterations(num_ite);
    }
};
于 2021-02-13T19:18:47.920 回答
1

它不支持想要精确调整迭代次数的情况。

正如您所指出的,它会一直运行,直到有足够的迭代来获得足够好的信号(尽管它实际上还没有检查统计数据)。我们曾经有一种方法来设置迭代计数,但是与时间相关标志的交互很复杂,并且让试图配置他们的基准的人感到困惑,所以它们被删除了。

不过,这是经常出现的事情,如果有一种方法可以同时支持迭代和计时,或者支持迭代,但如果我们认为结果没有意义,也会发出警告,那么我愿意考虑。

于 2020-05-19T10:32:21.387 回答