Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
bench
rollingbloom.cpp
Go to the documentation of this file.
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
#include <
bench/bench.h
>
6
#include <
common/bloom.h
>
7
#include <
crypto/common.h
>
8
9
#include <cstdint>
10
#include <span>
11
#include <vector>
12
13
static
void
RollingBloom
(
benchmark::Bench
& bench)
14
{
15
CRollingBloomFilter
filter(120000, 0.000001);
16
std::vector<unsigned char> data(32);
17
uint32_t count = 0;
18
bench.
run
([&] {
19
count++;
20
WriteLE32
(data.data(), count);
21
filter.
insert
(data);
22
23
WriteBE32
(data.data(), count);
24
filter.
contains
(data);
25
});
26
}
27
28
static
void
RollingBloomReset
(
benchmark::Bench
& bench)
29
{
30
CRollingBloomFilter
filter(120000, 0.000001);
31
bench.
run
([&] {
32
filter.
reset
();
33
});
34
}
35
36
BENCHMARK
(
RollingBloom
);
37
BENCHMARK
(
RollingBloomReset
);
bench.h
BENCHMARK
#define BENCHMARK(n)
Definition
bench.h:69
bloom.h
CRollingBloomFilter
RollingBloomFilter is a probabilistic "keep track of most recently inserted" set.
Definition
bloom.h:110
CRollingBloomFilter::contains
bool contains(std::span< const unsigned char > vKey) const
Definition
bloom.cpp:226
CRollingBloomFilter::reset
void reset()
Definition
bloom.cpp:240
CRollingBloomFilter::insert
void insert(std::span< const unsigned char > vKey)
Definition
bloom.cpp:195
ankerl::nanobench::Bench
Main entry point to nanobench's benchmarking facility.
Definition
nanobench.h:649
ankerl::nanobench::Bench::run
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
Definition
nanobench.h:1308
common.h
WriteLE32
void WriteLE32(B *ptr, uint32_t x)
Definition
common.h:50
WriteBE32
void WriteBE32(B *ptr, uint32_t x)
Definition
common.h:95
RollingBloom
static void RollingBloom(benchmark::Bench &bench)
Definition
rollingbloom.cpp:13
RollingBloomReset
static void RollingBloomReset(benchmark::Bench &bench)
Definition
rollingbloom.cpp:28
Generated on
for Bitcoin Core by
1.18.0