lance icon indicating copy to clipboard operation
lance copied to clipboard

perf: add fast path for simple projections

Open westonpace opened this issue 3 months ago โ€ข 4 comments

This should improve the performance of take operations.

Closes https://github.com/lance-format/lance/issues/5069

westonpace avatar Dec 18 '25 14:12 westonpace

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. Credits must be used to enable repository wide code reviews.

Codecov Report

:x: Patch coverage is 98.10427% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
rust/lance-datafusion/src/projection.rs 98.10% 3 Missing and 1 partial :warning:

:loudspeaker: Thoughts on this report? Let us know!

codecov[bot] avatar Dec 18 '25 15:12 codecov[bot]

Benchmark Results for PR #5532

Commit: ec69ed2 Baseline: Up to 20 most recent historical results per benchmark

Summary

  • Total benchmarks: 221
  • ๐Ÿš€ Improvements: 1
  • โš ๏ธ Regressions: 1
  • โœ… Stable: 219
  • โ“ Insufficient data: 0

Flagged Benchmarks (|z-score| > 2.0)

Benchmark PR Result Baseline Mean Baseline Std Dev Z-Score Status
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BTREE-5M] 2.14 s 1.95 s 80.76 ms +2.38 โš ๏ธ Likely Regressed
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[1-mem-tpch] 201.14 ยตs 321.25 ยตs 53.32 ยตs -2.25 ๐Ÿš€ Likely Improved

All Results

View all 221 benchmark results
Benchmark PR Result Baseline Mean Baseline N Z-Score Status
Cosine(f32, auto-vectorized) 105.09 ms 153.39 ms 20 -1.14 โœ…
Cosine(f32, scalar) 657.82 ms 820.47 ms 20 -0.93 โœ…
Cosine(f64, auto-vectorized) 270.64 ms 404.36 ms 20 -1.19 โœ…
Cosine(f64, scalar) 649.42 ms 836.72 ms 20 -1.01 โœ…
Cosine(half::bfloat::bf16, auto-vectorized) 250.48 ms 362.38 ms 20 -1.02 โœ…
Cosine(half::bfloat::bf16, scalar) 6.83 s 9.15 s 20 -1.05 โœ…
Cosine(half::binary16::f16, auto-vectorized) 123.03 ms 154.34 ms 20 -0.93 โœ…
Cosine(half::binary16::f16, scalar) 5.86 s 7.79 s 20 -1.02 โœ…
Cosine(simd,f32x8) rng seed 2.76 ms 3.73 ms 20 -0.98 โœ…
Dot(bf16, auto-vectorization) 377.51 ms 546.63 ms 20 -1.03 โœ…
Dot(f16, SIMD) 69.32 ms 91.43 ms 20 -1.00 โœ…
Dot(f32, SIMD) 97.27 ms 144.37 ms 20 -1.24 โœ…
Dot(f32, arrow_artiy) 607.49 ms 792.48 ms 20 -1.09 โœ…
Dot(f32, auto-vectorization) 98.15 ms 150.78 ms 20 -1.41 โœ…
Dot(f64, arrow_artiy) 617.78 ms 797.02 ms 20 -1.01 โœ…
Dot(f64, auto-vectorization) 196.13 ms 287.17 ms 20 -1.13 โœ…
Dot(half::binary16::f16, arrow_artiy) 688.39 ms 870.45 ms 20 -1.15 โœ…
Dot(half::binary16::f16, auto-vectorization) 63.77 ms 92.24 ms 20 -1.39 โœ…
L2(f32, auto-vectorization) 101.90 ms 149.21 ms 20 -1.09 โœ…
L2(f32, scalar) 620.67 ms 804.28 ms 20 -1.07 โœ…
L2(f32, simd) 100.08 ms 146.38 ms 20 -1.10 โœ…
L2(f64, auto-vectorization) 196.12 ms 297.23 ms 20 -1.24 โœ…
L2(f64, scalar) 658.99 ms 815.34 ms 20 -0.88 โœ…
L2(half::binary16::f16, auto-vectorization) 68.96 ms 94.50 ms 20 -1.23 โœ…
L2(half::binary16::f16, scalar) 2.81 s 3.56 s 20 -0.87 โœ…
L2(simd,f32x8) 4.60 ms 5.62 ms 20 -0.84 โœ…
L2(uint8, auto-vectorization) 52.24 ms 66.65 ms 20 -1.14 โœ…
L2(uint8, scalar) 49.34 ms 61.07 ms 20 -1.19 โœ…
NormL2(f32, SIMD) 94.09 ms 142.88 ms 20 -1.19 โœ…
NormL2(f32, auto-vectorization) 98.02 ms 142.08 ms 20 -1.10 โœ…
NormL2(f32, scalar) 609.11 ms 787.33 ms 20 -1.02 โœ…
NormL2(f64, auto-vectorization) 177.01 ms 296.55 ms 20 -1.27 โœ…
NormL2(f64, scalar) 627.33 ms 807.86 ms 20 -0.98 โœ…
NormL2(half::bfloat::bf16, auto-vectorization) 240.86 ms 339.64 ms 20 -1.00 โœ…
NormL2(half::bfloat::bf16, scalar) 2.60 s 3.32 s 20 -1.04 โœ…
NormL2(half::binary16::f16, SIMD) 61.13 ms 84.97 ms 20 -1.03 โœ…
NormL2(half::binary16::f16, auto-vectorization) 58.35 ms 84.56 ms 20 -1.12 โœ…
NormL2(half::binary16::f16, scalar) 638.19 ms 810.05 ms 20 -0.96 โœ…
argmin(arrow) 4.77 ms 4.64 ms 20 +0.65 โœ…
decode_fsl/float32_128_v2.0_nullfalse 30.13 ms 48.35 ms 20 -0.94 โœ…
decode_fsl/float32_128_v2.1_nullfalse 11.44 ms 15.65 ms 20 -1.68 โœ…
decode_fsl/float32_128_v2.1_nulltrue 22.64 ms 32.22 ms 20 -1.53 โœ…
decode_fsl/float32_16_v2.0_nullfalse 31.36 ms 48.20 ms 20 -0.86 โœ…
decode_fsl/float32_16_v2.1_nullfalse 18.71 ms 24.29 ms 20 -0.95 โœ…
decode_fsl/float32_16_v2.1_nulltrue 29.08 ms 37.70 ms 20 -0.94 โœ…
decode_fsl/float32_32_v2.0_nullfalse 31.10 ms 48.07 ms 20 -0.86 โœ…
decode_fsl/float32_32_v2.1_nullfalse 18.53 ms 24.28 ms 20 -0.99 โœ…
decode_fsl/float32_32_v2.1_nulltrue 27.36 ms 34.03 ms 20 -0.82 โœ…
decode_fsl/float32_4_v2.0_nullfalse 29.73 ms 48.43 ms 20 -0.96 โœ…
decode_fsl/float32_4_v2.1_nullfalse 24.88 ms 25.27 ms 20 -0.07 โœ…
decode_fsl/float32_4_v2.1_nulltrue 49.74 ms 63.80 ms 20 -0.94 โœ…
decode_fsl/float32_64_v2.0_nullfalse 30.37 ms 48.08 ms 20 -0.92 โœ…
decode_fsl/float32_64_v2.1_nullfalse 11.49 ms 16.29 ms 20 -1.28 โœ…
decode_fsl/float32_64_v2.1_nulltrue 26.58 ms 33.65 ms 20 -1.12 โœ…
decode_fsl/int8_128_v2.0_nullfalse 30.16 ms 48.36 ms 20 -0.93 โœ…
decode_fsl/int8_128_v2.1_nullfalse 17.77 ms 25.29 ms 20 -1.42 โœ…
decode_fsl/int8_128_v2.1_nulltrue 25.32 ms 33.89 ms 20 -1.05 โœ…
decode_fsl/int8_16_v2.0_nullfalse 29.61 ms 48.20 ms 20 -0.96 โœ…
decode_fsl/int8_16_v2.1_nullfalse 18.52 ms 25.00 ms 20 -1.19 โœ…
decode_fsl/int8_16_v2.1_nulltrue 50.89 ms 63.93 ms 20 -0.91 โœ…
decode_fsl/int8_32_v2.0_nullfalse 30.09 ms 48.15 ms 20 -0.93 โœ…
decode_fsl/int8_32_v2.1_nullfalse 20.22 ms 24.92 ms 20 -0.87 โœ…
decode_fsl/int8_32_v2.1_nulltrue 36.57 ms 47.09 ms 20 -0.95 โœ…
decode_fsl/int8_4_v2.0_nullfalse 29.37 ms 48.17 ms 20 -0.97 โœ…
decode_fsl/int8_4_v2.1_nullfalse 20.60 ms 26.52 ms 20 -1.03 โœ…
decode_fsl/int8_4_v2.1_nulltrue 139.08 ms 174.89 ms 20 -0.90 โœ…
decode_fsl/int8_64_v2.0_nullfalse 30.12 ms 48.54 ms 20 -0.94 โœ…
decode_fsl/int8_64_v2.1_nullfalse 24.56 ms 24.32 ms 20 +0.04 โœ…
decode_fsl/int8_64_v2.1_nulltrue 36.04 ms 37.85 ms 20 -0.20 โœ…
decode_primitive/date32 14.05 ms 15.89 ms 20 -0.65 โœ…
decode_primitive/date64 13.09 ms 15.97 ms 20 -1.00 โœ…
decode_primitive/decimal128(10, 10) 13.73 ms 16.43 ms 20 -1.01 โœ…
decode_primitive/decimal256(10, 10) 29.28 ms 34.60 ms 20 -1.13 โœ…
decode_primitive/duration(second) 12.24 ms 16.97 ms 20 -1.13 โœ…
decode_primitive/fixed-utf8 83.66 ยตs 95.95 ยตs 20 -0.49 โœ…
decode_primitive/float16 13.96 ms 16.00 ms 20 -0.76 โœ…
decode_primitive/float32 12.96 ms 16.34 ms 20 -1.13 โœ…
decode_primitive/float64 13.23 ms 16.49 ms 20 -0.91 โœ…
decode_primitive/int16 14.26 ms 15.82 ms 20 -0.53 โœ…
decode_primitive/int32 11.57 ms 15.91 ms 20 -1.48 โœ…
decode_primitive/int64 13.45 ms 16.24 ms 20 -0.90 โœ…
decode_primitive/int8 12.77 ms 15.99 ms 20 -1.11 โœ…
decode_primitive/struct 139.56 ยตs 186.10 ยตs 20 -1.29 โœ…
decode_primitive/time32(second) 11.59 ms 16.39 ms 20 -1.83 โœ…
decode_primitive/time64(nanosecond) 11.91 ms 16.37 ms 20 -1.63 โœ…
decode_primitive/timestamp(nanosecond, none) 14.40 ms 16.25 ms 20 -0.62 โœ…
decode_primitive/uint16 11.80 ms 16.22 ms 20 -1.17 โœ…
decode_primitive/uint32 13.46 ms 16.31 ms 20 -0.94 โœ…
decode_primitive/uint64 11.56 ms 16.30 ms 20 -1.33 โœ…
decode_primitive/uint8 13.52 ms 15.65 ms 20 -0.71 โœ…
decode_primitive/utf8 760.94 ยตs 954.59 ยตs 20 -0.93 โœ…
from_elem/full_read,parallel=1,read_size=1048576 38.81 ms 165.77 ms 20 -0.86 โœ…
from_elem/full_read,parallel=1,read_size=16384 247.04 ms 326.30 ms 20 -0.81 โœ…
from_elem/full_read,parallel=1,read_size=4096 807.49 ms 1.15 s 20 -0.91 โœ…
from_elem/full_read,parallel=16,read_size=1048576 38.54 ms 165.92 ms 20 -0.86 โœ…
from_elem/full_read,parallel=16,read_size=16384 239.82 ms 318.14 ms 20 -0.89 โœ…
from_elem/full_read,parallel=16,read_size=4096 797.62 ms 1.14 s 20 -0.94 โœ…
from_elem/full_read,parallel=32,read_size=1048576 36.12 ms 165.97 ms 20 -0.88 โœ…
from_elem/full_read,parallel=32,read_size=16384 243.49 ms 318.46 ms 20 -0.89 โœ…
from_elem/full_read,parallel=32,read_size=4096 765.32 ms 1.14 s 20 -1.01 โœ…
from_elem/full_read,parallel=64,read_size=1048576 34.36 ms 166.02 ms 20 -0.89 โœ…
from_elem/full_read,parallel=64,read_size=16384 254.78 ms 317.58 ms 20 -0.73 โœ…
from_elem/full_read,parallel=64,read_size=4096 833.05 ms 1.15 s 20 -0.87 โœ…
from_elem/random_read,parallel=1,item_size=1024 3.37 ms 4.16 ms 20 -0.98 โœ…
from_elem/random_read,parallel=1,item_size=4096 4.79 ms 6.95 ms 20 -0.79 โœ…
from_elem/random_read,parallel=1,item_size=8 1.64 ms 1.85 ms 20 -0.71 โœ…
from_elem/random_read,parallel=16,item_size=1024 3.36 ms 4.11 ms 20 -0.97 โœ…
from_elem/random_read,parallel=16,item_size=4096 4.59 ms 6.94 ms 20 -0.84 โœ…
from_elem/random_read,parallel=16,item_size=8 1.69 ms 1.84 ms 20 -0.52 โœ…
from_elem/random_read,parallel=32,item_size=1024 3.50 ms 4.10 ms 20 -0.76 โœ…
from_elem/random_read,parallel=32,item_size=4096 4.37 ms 6.93 ms 20 -0.91 โœ…
from_elem/random_read,parallel=32,item_size=8 1.69 ms 1.85 ms 20 -0.54 โœ…
from_elem/random_read,parallel=64,item_size=1024 3.38 ms 4.10 ms 20 -0.93 โœ…
from_elem/random_read,parallel=64,item_size=4096 4.42 ms 6.91 ms 20 -0.88 โœ…
from_elem/random_read,parallel=64,item_size=8 1.66 ms 1.84 ms 20 -0.58 โœ…
hamming,auto_vec 70.96 ms 96.16 ms 20 -1.05 โœ…
hamming,scalar 117.86 ms 160.09 ms 20 -0.89 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BITMAP-10M] 13.52 s 14.90 s 7 -0.88 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BITMAP-1M] 1.08 s 1.20 s 7 -1.46 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BITMAP-5M] 6.24 s 7.02 s 7 -1.30 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BTREE-10M] 1.41 s 1.44 s 7 -0.20 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BTREE-1M] 116.30 ms 126.97 ms 7 -0.72 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-float-BTREE-5M] 662.20 ms 701.94 ms 7 -1.15 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BITMAP-10M] 20.06 s 23.26 s 7 -0.78 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BITMAP-1M] 1.76 s 1.83 s 7 -0.43 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BITMAP-5M] 9.21 s 10.30 s 7 -0.80 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BTREE-10M] 3.99 s 3.93 s 7 +0.28 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BTREE-1M] 347.21 ms 349.37 ms 7 -0.17 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[high-string-BTREE-5M] 2.14 s 1.95 s 7 +2.38 โš ๏ธ
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BITMAP-10M] 735.28 ms 753.56 ms 7 -0.69 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BITMAP-1M] 80.81 ms 83.77 ms 7 -0.97 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BITMAP-5M] 371.55 ms 377.46 ms 7 -0.36 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BTREE-10M] 887.64 ms 905.03 ms 7 -0.76 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BTREE-1M] 63.06 ms 64.76 ms 7 -0.48 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-float-BTREE-5M] 457.06 ms 439.16 ms 7 +0.89 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BITMAP-10M] 2.50 s 2.53 s 7 -0.37 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BITMAP-1M] 329.20 ms 333.28 ms 7 -0.40 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BITMAP-5M] 1.25 s 1.27 s 7 -0.47 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BTREE-10M] 3.96 s 3.97 s 7 -0.05 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BTREE-1M] 446.68 ms 454.47 ms 7 -0.60 โœ…
python/ci_benchmarks/benchmarks/test_index_training.py::test_index_training[low-string-BTREE-5M] 1.97 s 1.91 s 7 +0.85 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[1-mem-tpch-2.1] 10.99 ms 14.07 ms 7 -1.35 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[1-mem-tpch] 10.81 ms 12.90 ms 7 -1.11 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[1-tpch-2.1] 13.16 ms 16.60 ms 7 -1.23 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[1-tpch] 13.22 ms 16.42 ms 7 -1.12 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[10-mem-tpch-2.1] 28.01 ms 33.87 ms 7 -0.99 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[10-mem-tpch] 24.60 ms 29.95 ms 7 -0.85 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[10-tpch-2.1] 68.21 ms 83.61 ms 7 -0.98 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[10-tpch] 73.79 ms 90.56 ms 7 -0.80 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[100-mem-tpch-2.1] 97.85 ms 124.65 ms 7 -1.08 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[100-mem-tpch] 81.76 ms 103.88 ms 7 -0.74 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[100-tpch-2.1] 507.44 ms 647.42 ms 7 -0.98 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_parallel_random_access[100-tpch] 513.12 ms 635.92 ms 7 -0.70 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[1-mem-tpch-2.1] 359.46 ยตs 399.50 ยตs 7 -0.81 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[1-mem-tpch] 201.14 ยตs 321.25 ยตs 7 -2.25 ๐Ÿš€
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[1-tpch-2.1] 1.04 ms 1.15 ms 7 -1.23 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[1-tpch] 385.23 ยตs 465.90 ยตs 7 -1.12 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[10-mem-tpch-2.1] 595.42 ยตs 754.47 ยตs 7 -1.00 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[10-mem-tpch] 462.54 ยตs 593.08 ยตs 7 -1.03 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[10-tpch-2.1] 1.78 ms 1.99 ms 7 -0.70 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[10-tpch] 1.20 ms 1.46 ms 7 -0.77 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[100-mem-tpch-2.1] 1.69 ms 2.10 ms 7 -0.91 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[100-mem-tpch] 1.07 ms 1.33 ms 7 -0.81 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[100-tpch-2.1] 6.86 ms 8.36 ms 7 -0.71 โœ…
python/ci_benchmarks/benchmarks/test_random_access.py::test_simple_random_access[100-tpch] 6.41 ms 7.76 ms 7 -0.66 โœ…
python/ci_benchmarks/benchmarks/test_scan.py::test_full_scan[tpch] 2.51 s 2.91 s 7 -0.65 โœ…
python/ci_benchmarks/benchmarks/test_scan.py::test_scan_slice[tpch] 1.57 ms 2.90 ms 7 -1.13 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-None-equal] 657.11 ยตs 705.65 ยตs 7 -0.57 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-None-none] 10.78 ms 13.01 ms 7 -1.36 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-None-not_equal] 54.95 ms 59.00 ms 7 -1.00 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-integers-equal] 790.35 ยตs 844.52 ยตs 7 -0.67 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-integers-none] 17.82 ms 20.49 ms 7 -0.98 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-integers-not_equal] 62.47 ms 68.85 ms 7 -1.02 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-small_strings-equal] 849.07 ยตs 859.66 ยตs 7 -0.16 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-small_strings-none] 44.63 ms 48.22 ms 7 -0.31 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[cache-small_strings-not_equal] 83.07 ms 90.60 ms 7 -0.98 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-None-equal] 5.62 s 6.80 s 7 -0.94 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-None-none] 12.22 ms 14.88 ms 7 -0.64 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-None-not_equal] 5.49 s 7.04 s 7 -0.91 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-integers-equal] 5.57 s 6.97 s 7 -1.11 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-integers-none] 30.05 ms 31.17 ms 7 -0.42 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-integers-not_equal] 5.66 s 6.92 s 7 -1.07 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-small_strings-equal] 5.42 s 7.18 s 7 -1.00 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-small_strings-none] 57.29 ms 63.11 ms 7 -0.53 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_bitmap_search[no_cache-small_strings-not_equal] 5.65 s 6.96 s 7 -0.94 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-None-equal] 631.11 ยตs 674.64 ยตs 7 -1.51 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-None-large_in] 837.56 ยตs 861.18 ยตs 7 -0.50 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-None-none] 11.16 ms 13.59 ms 7 -0.98 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-None-not_equal] 55.19 ms 60.67 ms 7 -1.22 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-None-small_range] 652.35 ยตs 860.41 ยตs 7 -0.61 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-integers-equal] 752.91 ยตs 821.60 ยตs 7 -0.76 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-integers-large_in] 937.56 ยตs 993.29 ยตs 7 -1.75 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-integers-none] 17.19 ms 21.10 ms 7 -1.30 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-integers-not_equal] 61.61 ms 67.80 ms 7 -1.28 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-integers-small_range] 742.29 ยตs 788.86 ยตs 7 -1.73 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-small_strings-equal] 791.88 ยตs 853.37 ยตs 7 -0.66 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-small_strings-large_in] 975.04 ยตs 1.10 ms 7 -1.01 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-small_strings-none] 40.57 ms 50.11 ms 7 -0.60 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-small_strings-not_equal] 84.23 ms 95.01 ms 7 -0.81 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[cache-small_strings-small_range] 817.61 ยตs 859.92 ยตs 7 -0.44 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-None-equal] 2.79 ms 2.94 ms 7 -0.29 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-None-large_in] 2.97 ms 2.95 ms 7 +0.04 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-None-none] 11.22 ms 14.12 ms 7 -1.20 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-None-not_equal] 58.13 ms 62.82 ms 7 -0.90 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-None-small_range] 2.84 ms 2.84 ms 7 -0.00 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-integers-equal] 3.26 ms 3.50 ms 7 -0.35 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-integers-large_in] 3.39 ms 3.52 ms 7 -0.22 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-integers-none] 30.38 ms 31.18 ms 7 -0.17 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-integers-not_equal] 75.94 ms 78.83 ms 7 -0.48 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-integers-small_range] 3.30 ms 3.39 ms 7 -0.16 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-small_strings-equal] 3.50 ms 3.79 ms 7 -0.34 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-small_strings-large_in] 3.57 ms 3.83 ms 7 -0.32 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-small_strings-none] 56.96 ms 66.08 ms 7 -0.58 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-small_strings-not_equal] 102.94 ms 114.95 ms 7 -0.69 โœ…
python/ci_benchmarks/benchmarks/test_search.py::test_basic_btree_search[no_cache-small_strings-small_range] 3.48 ms 3.74 ms 7 -0.33 โœ…
zip_1024Ki/2_2_2_zip_into_6 5.45 ms 7.98 ms 20 -1.18 โœ…
zip_1024Ki/2_4_zip_into_6 4.63 ms 5.65 ms 20 -0.83 โœ…
zip_32Ki/2_2_2_zip_into_6 186.78 ยตs 254.99 ยตs 20 -0.96 โœ…
zip_32Ki/2_4_zip_into_6 145.80 ยตs 178.00 ยตs 20 -0.89 โœ…
zip_8Ki/2_2_2_zip_into_6 44.07 ยตs 67.75 ยตs 20 -1.34 โœ…
zip_8Ki/2_4_zip_into_6 36.72 ยตs 45.52 ยตs 20 -0.87 โœ…

Generated by bench-bot ๐Ÿค–

westonpace avatar Dec 19 '25 18:12 westonpace

I was using this PR to test out bench-bot but those results aren't the really interesting ones. The random take benchmark in the lance repo is the main one I've been using and it hasn't been added to the regression set yet. Let me get some runs.

westonpace avatar Dec 19 '25 23:12 westonpace