1 #include <benchmark/benchmark.h> 2 3 #include <cpuinfo.h> 4 5 cpuinfo_get_current_processor(benchmark::State & state)6static void cpuinfo_get_current_processor(benchmark::State& state) { 7 cpuinfo_initialize(); 8 while (state.KeepRunning()) { 9 const cpuinfo_processor* current_processor = cpuinfo_get_current_processor(); 10 benchmark::DoNotOptimize(current_processor); 11 } 12 } 13 BENCHMARK(cpuinfo_get_current_processor)->Unit(benchmark::kNanosecond); 14 cpuinfo_get_current_core(benchmark::State & state)15static void cpuinfo_get_current_core(benchmark::State& state) { 16 cpuinfo_initialize(); 17 while (state.KeepRunning()) { 18 const cpuinfo_core* current_core = cpuinfo_get_current_core(); 19 benchmark::DoNotOptimize(current_core); 20 } 21 } 22 BENCHMARK(cpuinfo_get_current_core)->Unit(benchmark::kNanosecond); 23 cpuinfo_get_current_uarch_index(benchmark::State & state)24static void cpuinfo_get_current_uarch_index(benchmark::State& state) { 25 cpuinfo_initialize(); 26 while (state.KeepRunning()) { 27 const uint32_t uarch_index = cpuinfo_get_current_uarch_index(); 28 benchmark::DoNotOptimize(uarch_index); 29 } 30 } 31 BENCHMARK(cpuinfo_get_current_uarch_index)->Unit(benchmark::kNanosecond); 32 cpuinfo_get_current_uarch_index_with_default(benchmark::State & state)33static void cpuinfo_get_current_uarch_index_with_default(benchmark::State& state) { 34 cpuinfo_initialize(); 35 while (state.KeepRunning()) { 36 const uint32_t uarch_index = cpuinfo_get_current_uarch_index_with_default(0); 37 benchmark::DoNotOptimize(uarch_index); 38 } 39 } 40 BENCHMARK(cpuinfo_get_current_uarch_index_with_default)->Unit(benchmark::kNanosecond); 41 42 BENCHMARK_MAIN(); 43