Bitcoin Core
31.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
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
);
bench.h
BENCHMARK
#define BENCHMARK(n)
Definition
bench.h:68
bloom.h
CRollingBloomFilter
RollingBloomFilter is a probabilistic "keep track of most recently inserted" set.
Definition
bloom.h:109
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:627
ankerl::nanobench::Bench::run
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
Definition
nanobench.h:1234
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:14
RollingBloomReset
static void RollingBloomReset(benchmark::Bench &bench)
Definition
rollingbloom.cpp:29
span.h
count
static int count
Definition
tests_exhaustive.c:34
Generated on
for Bitcoin Core by
1.17.0