Changeset View
Changeset View
Standalone View
Standalone View
src/bench/gcs_filter.cpp
Show All 10 Lines | for (int i = 0; i < 10000; ++i) { | ||||
GCSFilter::Element element(32); | GCSFilter::Element element(32); | ||||
element[0] = static_cast<uint8_t>(i); | element[0] = static_cast<uint8_t>(i); | ||||
element[1] = static_cast<uint8_t>(i >> 8); | element[1] = static_cast<uint8_t>(i >> 8); | ||||
elements.insert(std::move(element)); | elements.insert(std::move(element)); | ||||
} | } | ||||
uint64_t siphash_k0 = 0; | uint64_t siphash_k0 = 0; | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
GCSFilter filter(siphash_k0, 0, 20, 1 << 20, elements); | GCSFilter filter({siphash_k0, 0, 20, 1 << 20}, elements); | ||||
siphash_k0++; | siphash_k0++; | ||||
} | } | ||||
} | } | ||||
static void MatchGCSFilter(benchmark::State &state) { | static void MatchGCSFilter(benchmark::State &state) { | ||||
GCSFilter::ElementSet elements; | GCSFilter::ElementSet elements; | ||||
for (int i = 0; i < 10000; ++i) { | for (int i = 0; i < 10000; ++i) { | ||||
GCSFilter::Element element(32); | GCSFilter::Element element(32); | ||||
element[0] = static_cast<uint8_t>(i); | element[0] = static_cast<uint8_t>(i); | ||||
element[1] = static_cast<uint8_t>(i >> 8); | element[1] = static_cast<uint8_t>(i >> 8); | ||||
elements.insert(std::move(element)); | elements.insert(std::move(element)); | ||||
} | } | ||||
GCSFilter filter(0, 0, 20, 1 << 20, elements); | GCSFilter filter({0, 0, 20, 1 << 20}, elements); | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
filter.Match(GCSFilter::Element()); | filter.Match(GCSFilter::Element()); | ||||
} | } | ||||
} | } | ||||
BENCHMARK(ConstructGCSFilter, 1000); | BENCHMARK(ConstructGCSFilter, 1000); | ||||
BENCHMARK(MatchGCSFilter, 50 * 1000); | BENCHMARK(MatchGCSFilter, 50 * 1000); |