MCPcopy Create free account
hub / github.com/bytedance/bolt / benchmarkComputeValueIds

Function benchmarkComputeValueIds

bolt/exec/benchmarks/VectorHasherBenchmark.cpp:80–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78
79template <typename T>
80void benchmarkComputeValueIds(bool withNulls) {
81 folly::BenchmarkSuspender suspender;
82 vector_size_t size = 1'000;
83 BenchmarkBase base;
84 VectorHasher hasher(CppToType<T>::create(), 0);
85 auto values = base.vectorMaker().flatVector<T>(
86 size,
87 [](vector_size_t row) { return row % 17; },
88 withNulls ? test::VectorMaker::nullEvery(7) : nullptr);
89
90 raw_vector<uint64_t> hashes(size);
91 SelectivityVector rows(size);
92 hasher.decode(*values, rows);
93 hasher.computeValueIds(rows, hashes);
94 hasher.enableValueRange(1, 0);
95 suspender.dismiss();
96
97 for (int i = 0; i < 10'000; i++) {
98 hasher.decode(*values, rows);
99 bool ok = hasher.computeValueIds(rows, hashes);
100 folly::doNotOptimizeAway(ok);
101 }
102}
103} // namespace
104
105// Uses SIMD acceleration

Callers

nothing calls this directly

Calls 5

vectorMakerMethod · 0.80
enableValueRangeMethod · 0.80
createFunction · 0.50
decodeMethod · 0.45
computeValueIdsMethod · 0.45

Tested by

no test coverage detected