30    auto randAddr = [&rng]() {
 
   32        memcpy(&addr, rng.
randbytes(
sizeof(addr)).data(), 
sizeof(addr));
 
   35        memcpy(&port, rng.
randbytes(
sizeof(port)).data(), 
sizeof(port));
 
   47    for (
size_t source_i = 0; source_i < 
NUM_SOURCES; ++source_i) {
 
   58    for (
size_t source_i = 0; source_i < 
NUM_SOURCES; ++source_i) {
 
   77        AddrMan addrman{ std::vector<bool>(),  
false,  0};
 
   84    AddrMan addrman( std::vector<bool>(),  
false,  0);
 
   89        const auto& address = addrman.
Select();
 
   90        assert(address.first.GetPort() > 0);
 
   96    AddrMan addrman( std::vector<bool>(),  
false,  0);
 
  101        const auto& addresses = addrman.
GetAddr( 2500,  23,  std::nullopt);
 
  102        assert(addresses.size() > 0);
 
  108    auto markSomeAsGood = [](
AddrMan& addrman) {
 
  109        for (
size_t source_i = 0; source_i < 
NUM_SOURCES; ++source_i) {
 
  125        AddrMan addrman( std::vector<bool>(),  
false,  0);
 
  128        markSomeAsGood(addrman);
 
static void FillAddrMan(AddrMan &addrman)
static void AddrManSelect(benchmark::Bench &bench)
static void AddrManAddThenGood(benchmark::Bench &bench)
static constexpr size_t NUM_SOURCES
static std::vector< CAddress > g_sources
static void AddrManGetAddr(benchmark::Bench &bench)
static constexpr size_t NUM_ADDRESSES_PER_SOURCE
static void CreateAddresses()
static void AddAddressesToAddrMan(AddrMan &addrman)
static void AddrManAdd(benchmark::Bench &bench)
static std::vector< std::vector< CAddress > > g_addresses
Stochastic address manager.
std::vector< CAddress > GetAddr(size_t max_addresses, size_t max_pct, std::optional< Network > network) const
Return all or many randomly selected addresses, optionally by network.
bool Add(const std::vector< CAddress > &vAddr, const CNetAddr &source, int64_t nTimePenalty=0)
Attempt to add one or more addresses to addrman's new table.
std::pair< CAddress, int64_t > Select(bool newOnly=false) const
Choose an address to connect to.
A CService with information about it as peer.
uint32_t nTime
Always included in serialization.
A combination of a network address (CNetAddr) and a (TCP) port.
std::vector< unsigned char > randbytes(size_t len)
Generate random bytes.
Main entry point to nanobench's benchmarking facility.
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
int64_t GetAdjustedTime()