Replace concat_elements_bytes BufferBuilders with Vec - #10632
Conversation
|
run benchmark concatenate_elements |
|
🤖 Arrow criterion benchmark running (GKE) | trigger CPU Details (lscpu)Comparing perf/arrow-string-concat-bytes-vecs (0b2f7df) to fc16607 (merge-base) diff Run configurationrun benchmark concatenate_elementsBENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench concatenate_elements File an issue against this benchmark runner |
|
🤖 Arrow criterion benchmark completed (GKE) | trigger Instance: Comparing perf/arrow-string-concat-bytes-vecs (0b2f7df) to fc16607 (merge-base) diff Run configurationrun benchmark concatenate_elementsCPU Details (lscpu)Details
Resource Usagebase (merge-base)
branch
File an issue against this benchmark runner |
Which issue does this PR close?
OffsetBufferBuilder/BufferBuilderusage withVec, when possible #10245.Rationale for this change
Using
Vecinstead ofBufferBuildercan benefit from Rust's optimized vector implementation. This updates the value and offset builders inconcat_elements_bytes.What changes are included in this PR?
BufferBuilderinstances with capacity-matched vectors.extend_from_sliceandpushwhile preserving the existing offset calculations.ArrayDataBuilder.Are these changes tested?
Yes. The following checks pass:
cargo +stable-x86_64-pc-windows-gnu fmt --all -- --checkcargo +stable-x86_64-pc-windows-gnu clippy -p arrow-string --all-targets --all-features --no-deps -- -D warningscargo +stable-x86_64-pc-windows-gnu test -p arrow-string --all-features(182 unit tests and 10 doctests passed)Are there any user-facing changes?
No.