//----------------------------------------------------------------------------- // sort.cc: ./sort --benchmark_time_unit=ms //----------------------------------------------------------------------------- #include #include #include #include #include //----------------------------------------------------------------------------- const std::size_t N = 1'000'000; std::default_random_engine engine(std::random_device{}()); std::uniform_int_distribution distribution; auto rng = std::bind(distribution, engine); std::array a, unsorted, sorted; struct INIT { INIT() { std::ranges::generate(unsorted, rng); sorted = unsorted; std::ranges::sort(sorted); } } _; //----------------------------------------------------------------------------- template void test(benchmark::State &state) { for (auto _ : state) { a = unsorted; algorithm(a); } assert(a == sorted); } //----------------------------------------------------------------------------- BENCHMARK(test)->Unit(benchmark::kMillisecond); BENCHMARK(test)->Unit(benchmark::kMillisecond); //----------------------------------------------------------------------------- BENCHMARK_MAIN(); //-----------------------------------------------------------------------------