diff options
Diffstat (limited to 'third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc')
-rw-r--r-- | third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc | 49 |
1 files changed, 1 insertions, 48 deletions
diff --git a/third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc b/third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc index 02c4dbe6d8..14c63b3fc9 100644 --- a/third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc +++ b/third_party/abseil-cpp/absl/strings/str_cat_benchmark.cc @@ -23,7 +23,7 @@ namespace { const char kStringOne[] = "Once Upon A Time, "; -const char kStringTwo[] = "There was a string benchmark"; +const char kStringTwo[] = "There was a std::string benchmark"; // We want to include negative numbers in the benchmark, so this function // is used to count 0, 1, -1, 2, -2, 3, -3, ... @@ -137,51 +137,4 @@ void BM_DoubleToString_By_SixDigits(benchmark::State& state) { } BENCHMARK(BM_DoubleToString_By_SixDigits); -template <typename... Chunks> -void BM_StrAppendImpl(benchmark::State& state, size_t total_bytes, - Chunks... chunks) { - for (auto s : state) { - std::string result; - while (result.size() < total_bytes) { - absl::StrAppend(&result, chunks...); - benchmark::DoNotOptimize(result); - } - } -} - -void BM_StrAppend(benchmark::State& state) { - const int total_bytes = state.range(0); - const int chunks_at_a_time = state.range(1); - const absl::string_view kChunk = "0123456789"; - - switch (chunks_at_a_time) { - case 1: - return BM_StrAppendImpl(state, total_bytes, kChunk); - case 2: - return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk); - case 4: - return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk, kChunk, - kChunk); - case 8: - return BM_StrAppendImpl(state, total_bytes, kChunk, kChunk, kChunk, - kChunk, kChunk, kChunk, kChunk, kChunk); - default: - std::abort(); - } -} - -template <typename B> -void StrAppendConfig(B* benchmark) { - for (int bytes : {10, 100, 1000, 10000}) { - for (int chunks : {1, 2, 4, 8}) { - // Only add the ones that divide properly. Otherwise we are over counting. - if (bytes % (10 * chunks) == 0) { - benchmark->Args({bytes, chunks}); - } - } - } -} - -BENCHMARK(BM_StrAppend)->Apply(StrAppendConfig); - } // namespace |