|
#include <benchmark/benchmark.h> |
|
|
|
#include <cpuinfo.h> |
|
|
|
|
|
static void cpuinfo_get_current_processor(benchmark::State& state) { |
|
cpuinfo_initialize(); |
|
while (state.KeepRunning()) { |
|
const cpuinfo_processor* current_processor = cpuinfo_get_current_processor(); |
|
benchmark::DoNotOptimize(current_processor); |
|
} |
|
} |
|
BENCHMARK(cpuinfo_get_current_processor)->Unit(benchmark::kNanosecond); |
|
|
|
static void cpuinfo_get_current_core(benchmark::State& state) { |
|
cpuinfo_initialize(); |
|
while (state.KeepRunning()) { |
|
const cpuinfo_core* current_core = cpuinfo_get_current_core(); |
|
benchmark::DoNotOptimize(current_core); |
|
} |
|
} |
|
BENCHMARK(cpuinfo_get_current_core)->Unit(benchmark::kNanosecond); |
|
|
|
static void cpuinfo_get_current_uarch_index(benchmark::State& state) { |
|
cpuinfo_initialize(); |
|
while (state.KeepRunning()) { |
|
const uint32_t uarch_index = cpuinfo_get_current_uarch_index(); |
|
benchmark::DoNotOptimize(uarch_index); |
|
} |
|
} |
|
BENCHMARK(cpuinfo_get_current_uarch_index)->Unit(benchmark::kNanosecond); |
|
|
|
static void cpuinfo_get_current_uarch_index_with_default(benchmark::State& state) { |
|
cpuinfo_initialize(); |
|
while (state.KeepRunning()) { |
|
const uint32_t uarch_index = cpuinfo_get_current_uarch_index_with_default(0); |
|
benchmark::DoNotOptimize(uarch_index); |
|
} |
|
} |
|
BENCHMARK(cpuinfo_get_current_uarch_index_with_default)->Unit(benchmark::kNanosecond); |
|
|
|
BENCHMARK_MAIN(); |
|
|