sunchao opened a new pull request, #11346: URL: https://github.com/apache/arrow-rs/pull/11346
# Which issue does this PR close? Benchmark coverage for #7184 and the discussion on #11279; does not close either issue. # Rationale for this change The existing interleave benchmarks do not isolate the cost of compacting byte views after selection. Reviewing an owned-copy operation also needs controls for repeated source ranges and for sparse selections from arrays with many backing buffers. This benchmark-only companion to #11279 adds the existing `interleave` and `interleave` followed by `gc()` paths first, as requested by the contributor guide. It changes no kernel implementation and makes no performance improvement claim. # What changes are included in this PR? Add 42 deterministic workloads to `arrow/benches/interleave_kernels.rs`: four sources of 8,192 rows, selections of 512 or 8,192 rows, and string lengths of 13-20, 20-60, or 100-400 bytes. Layouts cover unique selections, seeded random selections with replacement, fragmented buffers, repeated indices, shared source ranges, and sliced nullable arrays with inline values. Six additional cases within that total keep the source rows and selected values fixed while varying the total number of source buffers from 4 to 4,096 to 32,768, selecting either 3 or 32 rows. Input construction runs outside the measured loop. A shared fixture module lets the proposed compact implementation use identical inputs in #11279. # Are these changes tested? With Rust 1.98.1 and the unchanged repository lockfile: - Release benchmark compilation passed. - All 84 new Criterion benchmark smoke cases passed. - Formatting and diff whitespace checks passed. # Are there any user-facing changes? No. Benchmark coverage only. AI assistance: Codex generated the fixtures and benchmark additions, which were source-reviewed and compiled locally. -- 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]
