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