我有一个非常简单的 Google Benchmark 程序,它对采用两个整数参数的函数进行基准测试,我试图使用基准来查看随着第二个参数的值从1
to增加,函数花费的时间究竟如何增加100
,所以使用第一个参数保持相同的值999999
。
在我看来最合乎逻辑的实现方法是使用 Google Benchmark 的Ranges()
函数,如下所示:
// registering function 'largestDivisorOdd' as a benchmark
BENCHMARK(largestDivisorOdd) ->Ranges( { {999999, 999999}, {1,100} } );
结果输出是这样的:
-----------------------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------
largestDivisorOdd/999999/1 116 ns 116 ns 6018141
largestDivisorOdd/999999/8 205 ns 205 ns 3485489
largestDivisorOdd/999999/64 2715 ns 2715 ns 260611
largestDivisorOdd/999999/100 2710 ns 2710 ns 256160
我的问题是,Google Benchmark 的范围似乎只从指数增加的值 1
to 100
,导致第二个参数只有 4 个不同值的 4 个基准,而不是我预期和想要1
的100 个 100 个值的基准100
.