mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-06 05:00:12 +02:00
Merge #16073: refactor: Improve CRollingBloomFilter::reset by using std::fill
df9e15f092c18a8047f09307576c2b77b9c8d01c refactor: Improve CRollingBloomFilter::reset by using std::fill (João Barbosa)
d2dbc7da26e1ca40200521c05a0b1ca75578acd2 bench: Add benchmark for CRollingBloomFilter::reset (João Barbosa)
Pull request description:
Cleaner code. Also improves performance with `--enable-debug` (which is meaningless to non-developers).
Before:
```
# Benchmark, evals, iterations, total, min, max, median
RollingBloomReset, 5, 150, 19.3008, 0.0254917, 0.0259195, 0.0257395
```
After:
```
# Benchmark, evals, iterations, total, min, max, median
RollingBloomReset, 5, 150, 5.43269, 0.00720651, 0.00729697, 0.00724854
```
ACKs for commit df9e15:
MarcoFalke:
re-utACK df9e15f092
jamesob:
re-utACK df9e15f092
Tree-SHA512: 22038411dfd41afad77b17a3da9ee04476ffbd4d215dcf47bdd9f14588759bc328a55d958dcebc2036b52ce4c56f79b1284eae11e56ddfaf21f0b2ee1c6a914a
This commit is contained in:
commit
fdc951ad04
@ -28,4 +28,13 @@ static void RollingBloom(benchmark::State& state)
|
||||
}
|
||||
}
|
||||
|
||||
static void RollingBloomReset(benchmark::State& state)
|
||||
{
|
||||
CRollingBloomFilter filter(120000, 0.000001);
|
||||
while (state.KeepRunning()) {
|
||||
filter.reset();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(RollingBloom, 1500 * 1000);
|
||||
BENCHMARK(RollingBloomReset, 20000);
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#define LN2SQUARED 0.4804530139182014246671025263266649717305529515945455
|
||||
#define LN2 0.6931471805599453094172321214581765680755001343602552
|
||||
@ -304,7 +305,5 @@ void CRollingBloomFilter::reset()
|
||||
nTweak = GetRand(std::numeric_limits<unsigned int>::max());
|
||||
nEntriesThisGeneration = 0;
|
||||
nGeneration = 1;
|
||||
for (std::vector<uint64_t>::iterator it = data.begin(); it != data.end(); it++) {
|
||||
*it = 0;
|
||||
}
|
||||
std::fill(data.begin(), data.end(), 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user