Skip to content

Commit 66082ca

Browse files
Lőrincl0rinc
Lőrinc
authored andcommitted
Preallocate addresses in GetAddr based on nNodes
> make && ./src/bench/bench_bitcoin --filter=AddrManGetAddr --min-time=1000 Before: ``` | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- | 76,852.79 | 13,011.89 | 0.4% | 1.07 | `AddrManGetAddr` | 76,598.21 | 13,055.14 | 0.2% | 1.07 | `AddrManGetAddr` | 76,296.32 | 13,106.79 | 0.1% | 1.07 | `AddrManGetAddr` ``` After: ``` | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- | 65,966.97 | 15,159.10 | 0.3% | 1.07 | `AddrManGetAddr` | 66,075.40 | 15,134.23 | 0.2% | 1.06 | `AddrManGetAddr` | 66,306.34 | 15,081.51 | 0.3% | 1.06 | `AddrManGetAddr` ```
1 parent b3c22e0 commit 66082ca

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/addrman.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,7 @@ std::vector<CAddress> AddrManImpl::GetAddr_(size_t max_addresses, size_t max_pct
818818
// gather a list of random nodes, skipping those of low quality
819819
const auto now{Now<NodeSeconds>()};
820820
std::vector<CAddress> addresses;
821+
addresses.reserve(nNodes);
821822
for (unsigned int n = 0; n < vRandom.size(); n++) {
822823
if (addresses.size() >= nNodes)
823824
break;

0 commit comments

Comments
 (0)