123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #include <cstddef>
- #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_x(); ++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_x(); ++i) {
- benchmark::DoNotOptimize(i);
- }
- while(state.KeepRunning()) {
- for (int i = 0; i < state.range_x(); ++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_x(); ++i) {
- benchmark::DoNotOptimize(i);
- }
- state.ResumeTiming();
- for (int i = 0; i < state.range_x(); ++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_x(); ++i) {
- benchmark::DoNotOptimize(i);
- }
- }
- for (int i = 0; i < state.range_x(); ++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_x(); ++i) {
- benchmark::DoNotOptimize(i);
- }
- while(state.KeepRunning()) {
- for (int i = 0; i < state.range_x(); ++i) {
- benchmark::DoNotOptimize(i);
- }
- }
- for (int i = 0; i < state.range_x(); ++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()
|