20 #include "benchmark/benchmark.h" 28 SimpleClass() :
i(3) { }
29 ~SimpleClass() {
i = 0; }
34 template <
typename C,
size_t stack_size>
35 void BM_FixedArray(benchmark::State& state) {
36 const int size = state.range(0);
37 for (
auto _ : state) {
39 benchmark::DoNotOptimize(fa.data());
44 BENCHMARK_TEMPLATE(BM_FixedArray,
char, 0)->Range(0, 1 << 16);
45 BENCHMARK_TEMPLATE(BM_FixedArray,
char, 1)->Range(0, 1 << 16);
46 BENCHMARK_TEMPLATE(BM_FixedArray,
char, 16)->Range(0, 1 << 16);
47 BENCHMARK_TEMPLATE(BM_FixedArray,
char, 256)->Range(0, 1 << 16);
48 BENCHMARK_TEMPLATE(BM_FixedArray,
char, 65536)->Range(0, 1 << 16);
52 BENCHMARK_TEMPLATE(BM_FixedArray, SimpleClass, 0)->Range(0, 1 << 16);
53 BENCHMARK_TEMPLATE(BM_FixedArray, SimpleClass, 1)->Range(0, 1 << 16);
54 BENCHMARK_TEMPLATE(BM_FixedArray, SimpleClass, 16)->Range(0, 1 << 16);
55 BENCHMARK_TEMPLATE(BM_FixedArray, SimpleClass, 256)->Range(0, 1 << 16);
56 BENCHMARK_TEMPLATE(BM_FixedArray, SimpleClass, 65536)->Range(0, 1 << 16);
60 BENCHMARK_TEMPLATE(BM_FixedArray, std::string, 0)->Range(0, 1 << 16);
61 BENCHMARK_TEMPLATE(BM_FixedArray, std::string, 1)->Range(0, 1 << 16);
62 BENCHMARK_TEMPLATE(BM_FixedArray, std::string, 16)->Range(0, 1 << 16);
63 BENCHMARK_TEMPLATE(BM_FixedArray, std::string, 256)->Range(0, 1 << 16);
64 BENCHMARK_TEMPLATE(BM_FixedArray, std::string, 65536)->Range(0, 1 << 16);
static constexpr auto kFixedArrayUseDefault