Skip to content

Implement compare in vortex instead of falling back to arrow#8661

Open
robert3005 wants to merge 2 commits into
developfrom
rk/vortexcompare
Open

Implement compare in vortex instead of falling back to arrow#8661
robert3005 wants to merge 2 commits into
developfrom
rk/vortexcompare

Conversation

@robert3005

Copy link
Copy Markdown
Contributor

Instead of going through arrow compare logic implement it in vortex

Lets us leverage optimised bitbuffer optimistaions and ultimately remove arrow
dependency from vortex-array

Signed-off-by: Robert Kruszewski <github@robertk.io>
@robert3005 robert3005 added the changelog/feature A new feature label Jul 7, 2026
@robert3005 robert3005 requested review from 0ax1, AdamGS and gatesn July 7, 2026 00:58
@codspeed-hq

codspeed-hq Bot commented Jul 7, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 32.73%

⚡ 79 improved benchmarks
❌ 2 regressed benchmarks
✅ 1526 untouched benchmarks
🆕 10 new benchmarks
⏩ 42 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_varbinview_canonical_into[(1000, 10)] 154.7 µs 191 µs -19.02%
Simulation slice_empty_vortex 310.3 ns 368.6 ns -15.83%
Simulation compare_bool 458 µs 40.2 µs ×11
Simulation case_when_nary_10_conditions[1000] 241.8 µs 148.4 µs +62.91%
Simulation baseline_lt[4, 1024] 66.9 µs 42.3 µs +58.25%
Simulation baseline_eq[4, 1024] 65.3 µs 42.1 µs +55.06%
Simulation baseline_eq[16, 1024] 65.6 µs 42.4 µs +54.47%
Simulation baseline_lt[16, 1024] 66.1 µs 42.9 µs +54.13%
Simulation bench_compare_sliced_dict_varbinview[(1000, 10000)] 110.6 µs 71.9 µs +53.76%
Simulation bench_compare_sliced_dict_primitive[(1000, 10000)] 80.8 µs 53.5 µs +51.09%
Simulation bench_compare_sliced_dict_varbinview[(2000, 10000)] 136.7 µs 93.5 µs +46.27%
Simulation bench_compare_sliced_dict_varbinview[(2500, 10000)] 150.6 µs 104.3 µs +44.39%
Simulation case_when_nary_equality_lookup[1000] 174 µs 120.9 µs +43.87%
Simulation bench_compare_sliced_dict_primitive[(2000, 10000)] 84.8 µs 59.1 µs +43.66%
Simulation case_when_all_false[1000] 75.3 µs 52.7 µs +42.93%
Simulation bench_compare_sliced_dict_primitive[(2500, 10000)] 87.8 µs 61.6 µs +42.55%
Simulation bench_compare_sliced_dict_varbinview[(3333, 10000)] 173.8 µs 122.6 µs +41.7%
Simulation canonicalize_compare[(1000, 4, 4)] 116.7 µs 82.5 µs +41.58%
Simulation canonicalize_compare[(1000, 4, 8)] 118.7 µs 84.1 µs +41.23%
Simulation case_when_all_true[1000] 76.6 µs 54.5 µs +40.38%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing rk/vortexcompare (e54a66b) with develop (a6e3d3e)

Open in CodSpeed

Footnotes

  1. 42 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Signed-off-by: Robert Kruszewski <github@robertk.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants