#include #include #include #include #include #include #include "benchmark/benchmark.h" #include "ContainerBenchmarks.h" #include "GenerateInput.h" using namespace ContainerBenchmarks; constexpr std::size_t TestNumInputs = 1024; BENCHMARK_CAPTURE(BM_ConstructSize, vector_byte, std::vector{})->Arg(5140480); BENCHMARK_CAPTURE(BM_CopyConstruct, vector_int, std::vector{})->Arg(5140480); BENCHMARK_CAPTURE(BM_Assignment, vector_int, std::vector{})->Arg(5140480); BENCHMARK_CAPTURE(BM_ConstructSizeValue, vector_byte, std::vector{}, 0)->Arg(5140480); BENCHMARK_CAPTURE(BM_ConstructIterIter, vector_char, std::vector{}, getRandomIntegerInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_ConstructIterIter, vector_size_t, std::vector{}, getRandomIntegerInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_ConstructIterIter, vector_string, std::vector{}, getRandomStringInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_ConstructFromRange, vector_char, std::vector{}, getRandomIntegerInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_ConstructFromRange, vector_size_t, std::vector{}, getRandomIntegerInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_ConstructFromRange, vector_string, std::vector{}, getRandomStringInputs) ->Arg(TestNumInputs); BENCHMARK_CAPTURE(BM_Pushback_no_grow, vector_int, std::vector{})->Arg(TestNumInputs); template void bm_grow(benchmark::State& state) { for (auto _ : state) { std::vector vec; benchmark::DoNotOptimize(vec); for (size_t i = 0; i != 2048; ++i) vec.emplace_back(); benchmark::DoNotOptimize(vec); } } BENCHMARK(bm_grow); BENCHMARK(bm_grow); BENCHMARK(bm_grow>); BENCHMARK(bm_grow>); BENCHMARK_MAIN();