1 // Copyright (c) 2016 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
7 #include <bench/bench.h>
10 static void RollingBloom(benchmark::State
& state
)
12 CRollingBloomFilter
filter(120000, 0.000001);
13 std::vector
<unsigned char> data(32);
15 uint32_t nEntriesPerGeneration
= (120000 + 1) / 2;
16 uint32_t countnow
= 0;
18 while (state
.KeepRunning()) {
22 data
[2] = count
>> 16;
23 data
[3] = count
>> 24;
24 if (countnow
== nEntriesPerGeneration
) {
25 auto b
= benchmark::clock::now();
27 auto total
= std::chrono::duration_cast
<std::chrono::nanoseconds
>(benchmark::clock::now() - b
).count();
28 std::cout
<< "RollingBloom-refresh,1," << total
<< "," << total
<< "," << total
<< "\n";
34 data
[0] = count
>> 24;
35 data
[1] = count
>> 16;
38 match
+= filter
.contains(data
);
42 BENCHMARK(RollingBloom
);