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

0 ответов

Другие вопросы по тегам