mightsleep opened a new pull request, #11271: URL: https://github.com/apache/arrow-rs/pull/11271
# Which issue does this PR close? - Part of #11213. # Rationale for this change The `filter_bits` cases repeat one 65536-row mask, 1024 words. A recent core learns the per-word branches of a mask that small, so on random masks the cases measure a better branch predictor than a real filter gets: on the same build, `kept 1/2` costs 17 ns a word there and 23 ns a word on 4 Mi rows of fresh data (Zen 5, default target). They also have no clustered masks, as from a sorted or time-ordered column, where word-level code sees mostly full and empty words. As discussed in #11213, the benchmarks go in first so that the `compress` change can be measured against them. # What changes are included in this PR? `filter_bits large`, 4 Mi rows, lazy strategies only (the path that compresses word by word): - independent rows, kept 1/1024 to 15/16 (8 cases) - runs averaging 64 and 4096 rows, kept 1/8, 1/2, 7/8 (6 cases) # Are these changes tested? Benchmarks only. `cargo fmt` is clean; with criterion's defaults the new cases add about two minutes to the `filter_bits` bench. # Are there any user-facing changes? No. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
