//----------------------------------------------------------------------------- #include #include #include #include #include "prime.h" //----------------------------------------------------------------------------- const std::size_t N = 10000; auto seed = std::random_device()(); //----------------------------------------------------------------------------- template void test(benchmark::State& state) { using T = typename decltype(std::function{f})::argument_type; for (auto _ : state) { std::size_t count = 0; std::mt19937 generator(seed); std::uniform_int_distribution distribution; auto rng = std::bind(distribution, generator); for(std::size_t i = 0; i < N; ++i) if (f(rng())) ++count; state.counters["count"] = count; } } //----------------------------------------------------------------------------- BENCHMARK(test>); BENCHMARK(test>); BENCHMARK(test>); BENCHMARK_MAIN(); //-----------------------------------------------------------------------------