neilconway opened a new pull request, #11742: URL: https://github.com/apache/arrow-rs/pull/11742
# Which issue does this PR close? - N/A. Split out of #11656, which uses these benchmarks. # Rationale for this change Extend the benchmarks for `MutableBuffer::extend` to cover more iterator shapes, and extend the `MutableArrayData` benchmarks to cover more data types. We also revise how data is generated for the `zip_kernels` and `mutable_array` benchmarks: the previous approach repeatedly passed the same input data to the functions on every iteration. This allows the branch predictor to do much better than it would on real-world data, which initially hid the ARM regression described above. These improvements are intended to evaluate #11656 more accurately. # What changes are included in this PR? - Add an arrow-buffer `mutable_buffer_extend` benchmark that appends 32Ki items, one `extend` call per chunk, with chunks of random length (16 or 1024 items on average). It covers copied and mapped slices, an `i32` range, `repeat_n`, a `Chain` of two slices, and a `Filter`, whose size hint is not exact. - Add `Utf8View` and dictionary cases to `mutable_array`, with the existing long random slices and with slices of 1 to 8 rows. Every case now starts with room for all the rows it copies, so its time goes to the copies rather than to growing the buffers. - Cycle `zip_kernels`, `mutable_array` and `mutable_buffer_extend` through 16 to 64 inputs instead of reusing one. Scalars and the constant masks stay the same, as they would across the batches of a query. # Are these changes tested? Benchmark-only change. # Are there any significant user-facing changes? No. # AI usage Claude Code (Opus 5.5), reviewed with Codex (Astra 6.1). -- 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]
