Skip to content

Commit

Permalink
Update GCSFilter benchmarks
Browse files Browse the repository at this point in the history
Element count used in the GCSFilter benchmarks are increased to 100,000
from 10,000. Testing the benchmarks with different element counts showed
that a filter with 100,000 elements resulted in the same ns/op. This
this a desirable thing to have as it allows us to reason about how long
a single filter element takes to process, letting us easily calculate
how long a filter with N elements (where N > 100,000) would take to
process.

GCSFilterConstruct benchmark is now called without batch. This makes
intra-bench results more intuitive as all benchmarks are in ns/op
instead of a custom unit. There are no downsides to this change as
testing showed that there is no observable difference in error rates
in the benchmarks when calling without batch.
  • Loading branch information
kcalvinalvin committed May 22, 2022
1 parent aee9a81 commit e734228
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/bench/gcs_filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@
static const GCSFilter::ElementSet GenerateGCSTestElements()
{
GCSFilter::ElementSet elements;
for (int i = 0; i < 10000; ++i) {

// Testing the benchmarks with different number of elements show that a filter
// with at least 100,000 elements results in benchmarks that have the same
// ns/op. This makes it easy to reason about how long (in nanoseconds) a single
// filter element takes to process.
for (int i = 0; i < 100000; ++i) {
GCSFilter::Element element(32);
element[0] = static_cast<unsigned char>(i);
element[1] = static_cast<unsigned char>(i >> 8);
Expand All @@ -35,7 +40,7 @@ static void GCSFilterConstruct(benchmark::Bench& bench)
auto elements = GenerateGCSTestElements();

uint64_t siphash_k0 = 0;
bench.batch(elements.size()).unit("elem").run([&] {
bench.run([&]{
GCSFilter filter({siphash_k0, 0, BASIC_FILTER_P, BASIC_FILTER_M}, elements);

siphash_k0++;
Expand Down

0 comments on commit e734228

Please sign in to comment.