我正在使用Google Benchmark,但无法设置启动和暂停计时器而不影响基准测试。
我有一个函数get_val()
,该函数返回一个随机的uint64_t
值,该值应传递给在每次迭代中进行基准测试的函数。最好的方法是什么?
我一直在做的是这个
static void BM_example(benchmark::State& state) {
uint64_t p;
for (auto _ : state)
state.PauseTiming();
p = get_val();
state.ResumeTiming();
measure_me(p);
}
但是状态暂停和恢复正在影响结果。在每次迭代中不影响计时器的情况下,将新的随机uint64_t传递给我的测量函数的最佳方法是什么?