rollingbloom.cpp
1 // Copyright (c) 2016-present 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. 4 5 6 #include <bench/bench.h> 7 #include <common/bloom.h> 8 #include <crypto/common.h> 9 #include <span.h> 10 11 #include <cstdint> 12 #include <vector> 13 14 static void RollingBloom(benchmark::Bench& bench) 15 { 16 CRollingBloomFilter filter(120000, 0.000001); 17 std::vector<unsigned char> data(32); 18 uint32_t count = 0; 19 bench.run([&] { 20 count++; 21 WriteLE32(data.data(), count); 22 filter.insert(data); 23 24 WriteBE32(data.data(), count); 25 filter.contains(data); 26 }); 27 } 28 29 static void RollingBloomReset(benchmark::Bench& bench) 30 { 31 CRollingBloomFilter filter(120000, 0.000001); 32 bench.run([&] { 33 filter.reset(); 34 }); 35 } 36 37 BENCHMARK(RollingBloom); 38 BENCHMARK(RollingBloomReset);