diff options
Diffstat (limited to 'third_party/abseil_cpp/absl/random/internal/nanobenchmark_test.cc')
-rw-r--r-- | third_party/abseil_cpp/absl/random/internal/nanobenchmark_test.cc | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/third_party/abseil_cpp/absl/random/internal/nanobenchmark_test.cc b/third_party/abseil_cpp/absl/random/internal/nanobenchmark_test.cc deleted file mode 100644 index f1571e269ff5..000000000000 --- a/third_party/abseil_cpp/absl/random/internal/nanobenchmark_test.cc +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "absl/random/internal/nanobenchmark.h" - -#include "absl/base/internal/raw_logging.h" -#include "absl/strings/numbers.h" - -namespace absl { -ABSL_NAMESPACE_BEGIN -namespace random_internal_nanobenchmark { -namespace { - -uint64_t Div(const void*, FuncInput in) { - // Here we're measuring the throughput because benchmark invocations are - // independent. - const int64_t d1 = 0xFFFFFFFFFFll / int64_t(in); // IDIV - return d1; -} - -template <size_t N> -void MeasureDiv(const FuncInput (&inputs)[N]) { - Result results[N]; - Params params; - params.max_evals = 6; // avoid test timeout - const size_t num_results = Measure(&Div, nullptr, inputs, N, results, params); - if (num_results == 0) { - ABSL_RAW_LOG( - WARNING, - "WARNING: Measurement failed, should not happen when using " - "PinThreadToCPU unless the region to measure takes > 1 second.\n"); - return; - } - for (size_t i = 0; i < num_results; ++i) { - ABSL_RAW_LOG(INFO, "%5zu: %6.2f ticks; MAD=%4.2f%%\n", results[i].input, - results[i].ticks, results[i].variability * 100.0); - ABSL_RAW_CHECK(results[i].ticks != 0.0f, "Zero duration"); - } -} - -void RunAll(const int argc, char* argv[]) { - // Avoid migrating between cores - important on multi-socket systems. - int cpu = -1; - if (argc == 2) { - if (!absl::SimpleAtoi(argv[1], &cpu)) { - ABSL_RAW_LOG(FATAL, "The optional argument must be a CPU number >= 0.\n"); - } - } - PinThreadToCPU(cpu); - - // unpredictable == 1 but the compiler doesn't know that. - const FuncInput unpredictable = argc != 999; - static const FuncInput inputs[] = {unpredictable * 10, unpredictable * 100}; - - MeasureDiv(inputs); -} - -} // namespace -} // namespace random_internal_nanobenchmark -ABSL_NAMESPACE_END -} // namespace absl - -int main(int argc, char* argv[]) { - absl::random_internal_nanobenchmark::RunAll(argc, argv); - return 0; -} |