Значения функций как аргументы в Google Benchmark - PullRequest
1 голос
/ 05 июля 2019

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

...