rectangle-union-area/benchmark.cpp

34 lines
933 B
C++

//
// Created by maximilian on 16.04.22.
//
#include <benchmark/benchmark.h>
#include "areas.h"
static void BM_area_computation(benchmark::State& state) {
std::vector<Rectangle> rects;
for (auto _ : state) {
state.PauseTiming();
rects = get_random_instance(state.range(0), state.range(1));
state.ResumeTiming();
get_area_union(rects);
}
state.SetComplexityN(state.range(0));
}
// add benchmark
// BENCHMARK(BM_area_computation)->ArgsProduct({benchmark::CreateRange(1<<4,1<<18,4),{1<<20}})->Complexity(benchmark::oNLogN);
BENCHMARK(BM_area_computation)->Args({{1<<18, 1<<20}});
// run benchmark as main()
int main(int argc, char **argv) {
srand(876);
::benchmark::Initialize(&argc, argv);
if (::benchmark::ReportUnrecognizedArguments(argc, argv))return 1;
::benchmark::RunSpecifiedBenchmarks();
::benchmark::Shutdown();
return 0;
}
int main(int, char **);