• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <benchmark/benchmark.h>
2 
3 #include <cpuinfo.h>
4 
5 
cpuinfo_get_current_processor(benchmark::State & state)6 static 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)15 static 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)24 static 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)33 static 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