mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
Merge bitcoin/bitcoin#29608: optimization: Preallocate addresses in GetAddr based on nNodes
66082ca348
Preallocate addresses in GetAddr based on nNodes (Lőrinc) Pull request description: The reserve method optimizes memory allocation by preallocating space for the expected number of elements (nNodes), reducing reallocations and improving performance. The upper bound ensures efficient memory usage based on the input constraints. 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` ``` ACKs for top commit: stickies-v: ACK66082ca348
vasild: ACK66082ca348
Tree-SHA512: 1175cff250d9c52ed042e8807ddc2afd64a806e6f2195b5c648752869ff3beec0be8a8cbd7ab6ba35cd7077d79b88a380da6c6e244f5549f98cdd472808b6d8f
This commit is contained in:
commit
d4abaf8c9d
1 changed files with 1 additions and 0 deletions
|
@ -824,6 +824,7 @@ std::vector<CAddress> AddrManImpl::GetAddr_(size_t max_addresses, size_t max_pct
|
||||||
// gather a list of random nodes, skipping those of low quality
|
// gather a list of random nodes, skipping those of low quality
|
||||||
const auto now{Now<NodeSeconds>()};
|
const auto now{Now<NodeSeconds>()};
|
||||||
std::vector<CAddress> addresses;
|
std::vector<CAddress> addresses;
|
||||||
|
addresses.reserve(nNodes);
|
||||||
for (unsigned int n = 0; n < vRandom.size(); n++) {
|
for (unsigned int n = 0; n < vRandom.size(); n++) {
|
||||||
if (addresses.size() >= nNodes)
|
if (addresses.size() >= nNodes)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue