xref: /openbsd-src/gnu/llvm/libcxx/benchmarks/vector_operations.bench.cpp (revision 46035553bfdd96e63c94e32da0210227ec2e3cf1)
1*46035553Spatrick #include <vector>
2*46035553Spatrick #include <functional>
3*46035553Spatrick #include <cstdint>
4*46035553Spatrick #include <cstdlib>
5*46035553Spatrick #include <cstring>
6*46035553Spatrick 
7*46035553Spatrick #include "benchmark/benchmark.h"
8*46035553Spatrick 
9*46035553Spatrick #include "ContainerBenchmarks.h"
10*46035553Spatrick #include "GenerateInput.h"
11*46035553Spatrick 
12*46035553Spatrick using namespace ContainerBenchmarks;
13*46035553Spatrick 
14*46035553Spatrick constexpr std::size_t TestNumInputs = 1024;
15*46035553Spatrick 
16*46035553Spatrick BENCHMARK_CAPTURE(BM_ConstructSize,
17*46035553Spatrick     vector_byte,
18*46035553Spatrick     std::vector<unsigned char>{})->Arg(5140480);
19*46035553Spatrick 
20*46035553Spatrick BENCHMARK_CAPTURE(BM_ConstructSizeValue,
21*46035553Spatrick     vector_byte,
22*46035553Spatrick     std::vector<unsigned char>{}, 0)->Arg(5140480);
23*46035553Spatrick 
24*46035553Spatrick BENCHMARK_CAPTURE(BM_ConstructIterIter,
25*46035553Spatrick   vector_char,
26*46035553Spatrick   std::vector<char>{},
27*46035553Spatrick   getRandomIntegerInputs<char>)->Arg(TestNumInputs);
28*46035553Spatrick 
29*46035553Spatrick BENCHMARK_CAPTURE(BM_ConstructIterIter,
30*46035553Spatrick   vector_size_t,
31*46035553Spatrick   std::vector<size_t>{},
32*46035553Spatrick   getRandomIntegerInputs<size_t>)->Arg(TestNumInputs);
33*46035553Spatrick 
34*46035553Spatrick BENCHMARK_CAPTURE(BM_ConstructIterIter,
35*46035553Spatrick   vector_string,
36*46035553Spatrick   std::vector<std::string>{},
37*46035553Spatrick   getRandomStringInputs)->Arg(TestNumInputs);
38*46035553Spatrick 
39*46035553Spatrick 
40*46035553Spatrick BENCHMARK_MAIN();
41