perf(speed up filter_fzb) - #10993
Conversation
|
run benchmark filter_kernels |
|
Hi @Rich-T-kid, your benchmark configuration could not be parsed (#10993 (comment)). Error: Usage: Any benchmark name is accepted: Per-side configuration ( env:
# shared env is inherited by BOTH the build and the run, so build
# flags go here. Builds default to no debuginfo for speed; opt back
# in for hung-job gdb dumps and cap jobs to stay within memory:
CARGO_PROFILE_RELEASE_DEBUG: "1"
CARGO_BUILD_JOBS: "1"
baseline:
ref: v45.0.0
env:
# per-side env only reaches the benchmark run, not the build
DATAFUSION_RUNTIME_MEMORY_LIMIT: 1G
changed:
ref: v46.0.0
env:
DATAFUSION_RUNTIME_MEMORY_LIMIT: 2GFile an issue against this benchmark runner |
|
run benchmark filter_kernels |
|
🤖 Arrow criterion benchmark running (GKE) | trigger CPU Details (lscpu)Comparing rich-T-kid/perf-filter-fixed-size-binary-TODO (1e93350) to 3e89669 (merge-base) diff Run configurationrun benchmark filter_kernels
env:
BENCH_FILTER: "fsb"BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench filter_kernels File an issue against this benchmark runner |
|
🤖 Arrow criterion benchmark completed (GKE) | trigger Instance: Comparing rich-T-kid/perf-filter-fixed-size-binary-TODO (1e93350) to 3e89669 (merge-base) diff Run configurationrun benchmark filter_kernels
env:
BENCH_FILTER: "fsb"CPU Details (lscpu)Details
Resource Usagebase (merge-base)
branch
File an issue against this benchmark runner |
decent wins |
Which issue does this PR close?
Rationale for this change
filter_fixed_size_binaryusedMutableBuffer::newwhich zero-initializesthe buffer before immediately overwriting every byte. This skips that.
What changes are included in this PR?
Adds
copy_fsb_indiceshelper used by theIndexIteratorandIndicespaths in
filter_fixed_size_binary. SwapsMutableBuffer::new+extend_from_sliceforwith_capacity+ptr::copy_nonoverlapping.Are these changes tested?
yes, existing test.
Are there any user-facing changes?
no