我不确定如何正确使用Google Benchmark。
GitHub-Documentation状态中的示例使用以下语法:
for( auto _ : state)
{
// code to be benchmarked
}
但互联网上的大多数examples都显示了以下语法:
while( state.KeepRunning() )
{
// code to be benchmarked
}
我使用这两种方法来比较它们,它们显示出略有不同的测量结果。
有什么建议吗?
答案 0 :(得分:1)
但互联网上的大多数例子都显示了以下语法:
这是因为大多数示例都是在过去编写的,而替代的ranged-for语法是一个非常新的功能:https://github.com/google/benchmark/pull/454(大约2个月)。
我使用这两种方法来比较它们,它们显示出略有不同的测量结果。
有什么建议吗?
他们是做同样事情的两种替代方式。考虑轻微不同的测量是否重要。如果没有,那么它不会影响你使用的。如果它很重要,那么您可以得出结论,基准测试代码非常有效。使用产生一致较低测量值的那个,因为该循环具有较小的开销。