| #include <benchmark/benchmark.h> |
| #include "absl/random/random.h" |
| #include "upb/mini_table/message.h" |
| #include "upb/mini_table/message_benchmark.upb_minitable.h" |
| #include "upb/port/def.inc" |
| static void BM_FindFieldByNumber(benchmark::State& state) { |
| const upb_MiniTable* ptr = |
| third_0party_0upb_0upb_0mini_0table__TestManyFields_msg_init_ptr; |
| s = absl::Uniform(bitgen, min, max); |
| uint16_t offset = upb_MiniTable_FindFieldByNumber(ptr, search[(i++ % 1024)]) |
| benchmark::DoNotOptimize(offset); |
| BENCHMARK(BM_FindFieldByNumber)->Arg(true)->Arg(false); |