| 150 | } |
| 151 | |
| 152 | static void AddrManAddThenGood(benchmark::Bench& bench) |
| 153 | { |
| 154 | auto markSomeAsGood = [](AddrMan& addrman) { |
| 155 | for (size_t source_i = 0; source_i < NUM_SOURCES; ++source_i) { |
| 156 | for (size_t addr_i = 0; addr_i < NUM_ADDRESSES_PER_SOURCE; ++addr_i) { |
| 157 | addrman.Good(g_addresses[source_i][addr_i]); |
| 158 | } |
| 159 | } |
| 160 | }; |
| 161 | |
| 162 | CreateAddresses(); |
| 163 | |
| 164 | std::optional<AddrMan> addrman; |
| 165 | bench.setup([&] { |
| 166 | addrman.emplace(EMPTY_NETGROUPMAN, /*deterministic=*/false, ADDRMAN_CONSISTENCY_CHECK_RATIO); |
| 167 | AddAddressesToAddrMan(*addrman); |
| 168 | }) |
| 169 | .run([&] { markSomeAsGood(*addrman); }); |
| 170 | } |
| 171 | |
| 172 | BENCHMARK(AddrManAdd); |
| 173 | BENCHMARK(AddrManSelect); |
nothing calls this directly
no test coverage detected