Я использую 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 моей измеряемой функции на каждой итерации, не влияя на таймер?