rectangle-union-area/benchmark.cpp

25 lines
630 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,1<<16,4),{1<<10, 1<<15, 1<<20}})->Complexity(benchmark::oNSquared);
// run benchmark as main()
BENCHMARK_MAIN();