Index: third_party/google_benchmark/test/basic_test.cc |
diff --git a/third_party/google_benchmark/test/basic_test.cc b/third_party/google_benchmark/test/basic_test.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..22de007cb6dd274cf7eab21517c9d3c69a1499d2 |
--- /dev/null |
+++ b/third_party/google_benchmark/test/basic_test.cc |
@@ -0,0 +1,99 @@ |
+ |
+#include "benchmark/benchmark_api.h" |
+ |
+#define BASIC_BENCHMARK_TEST(x) BENCHMARK(x)->Arg(8)->Arg(512)->Arg(8192) |
+ |
+void BM_empty(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ benchmark::DoNotOptimize(state.iterations()); |
+ } |
+} |
+BENCHMARK(BM_empty); |
+BENCHMARK(BM_empty)->ThreadPerCpu(); |
+ |
+void BM_spin_empty(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ for (int x = 0; x < state.range(0); ++x) { |
+ benchmark::DoNotOptimize(x); |
+ } |
+ } |
+} |
+BASIC_BENCHMARK_TEST(BM_spin_empty); |
+BASIC_BENCHMARK_TEST(BM_spin_empty)->ThreadPerCpu(); |
+ |
+void BM_spin_pause_before(benchmark::State& state) { |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ while (state.KeepRunning()) { |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ } |
+} |
+BASIC_BENCHMARK_TEST(BM_spin_pause_before); |
+BASIC_BENCHMARK_TEST(BM_spin_pause_before)->ThreadPerCpu(); |
+ |
+void BM_spin_pause_during(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ state.PauseTiming(); |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ state.ResumeTiming(); |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ } |
+} |
+BASIC_BENCHMARK_TEST(BM_spin_pause_during); |
+BASIC_BENCHMARK_TEST(BM_spin_pause_during)->ThreadPerCpu(); |
+ |
+void BM_pause_during(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ state.PauseTiming(); |
+ state.ResumeTiming(); |
+ } |
+} |
+BENCHMARK(BM_pause_during); |
+BENCHMARK(BM_pause_during)->ThreadPerCpu(); |
+BENCHMARK(BM_pause_during)->UseRealTime(); |
+BENCHMARK(BM_pause_during)->UseRealTime()->ThreadPerCpu(); |
+ |
+void BM_spin_pause_after(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ } |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+} |
+BASIC_BENCHMARK_TEST(BM_spin_pause_after); |
+BASIC_BENCHMARK_TEST(BM_spin_pause_after)->ThreadPerCpu(); |
+ |
+void BM_spin_pause_before_and_after(benchmark::State& state) { |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ while (state.KeepRunning()) { |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+ } |
+ for (int i = 0; i < state.range(0); ++i) { |
+ benchmark::DoNotOptimize(i); |
+ } |
+} |
+BASIC_BENCHMARK_TEST(BM_spin_pause_before_and_after); |
+BASIC_BENCHMARK_TEST(BM_spin_pause_before_and_after)->ThreadPerCpu(); |
+ |
+void BM_empty_stop_start(benchmark::State& state) { |
+ while (state.KeepRunning()) { |
+ } |
+} |
+BENCHMARK(BM_empty_stop_start); |
+BENCHMARK(BM_empty_stop_start)->ThreadPerCpu(); |
+ |
+BENCHMARK_MAIN() |