Skip to content

perf: remove unneeded scalar_at and valid_at and use arrays instead#8307

Open
joseph-isaacs wants to merge 1 commit into
developfrom
ji/row-accessor-remove
Open

perf: remove unneeded scalar_at and valid_at and use arrays instead#8307
joseph-isaacs wants to merge 1 commit into
developfrom
ji/row-accessor-remove

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

We often pull out and decompress array when doing is_valid in a loop, this PR instead uses execute_mask once and then operates on a Mask in the loop.

We could later come along and replace this Mask::value(&self) method with a packed chunk iterator.

@joseph-isaacs joseph-isaacs requested review from a team and 0ax1 June 9, 2026 11:06
@codspeed-hq

codspeed-hq Bot commented Jun 9, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 20.92%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 13 improved benchmarks
❌ 2 regressed benchmarks
✅ 1508 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decompress_rd[f64, (100000, 0.0)] 845.9 µs 1,024.1 µs -17.4%
Simulation decompress_rd[f32, (100000, 0.0)] 499.5 µs 586.5 µs -14.85%
Simulation extend_from_array_non_zctl_overlapping[(10000, 8)] 4 ms 2.3 ms +70.67%
Simulation extend_from_array_non_zctl_overlapping[(1000, 8)] 452.9 µs 287 µs +57.79%
Simulation chunked_bool_canonical_into[(1000, 10)] 46.7 µs 31.7 µs +47.23%
Simulation varbinview_zip_block_mask 3.7 ms 2.9 ms +27.49%
Simulation bitwise_not_vortex_buffer_mut[128] 275.3 ns 216.9 ns +26.89%
Simulation chunked_varbinview_canonical_into[(1000, 10)] 197.9 µs 161.9 µs +22.26%
Simulation extend_from_array_non_zctl_overlapping[(1000, 32)] 948.6 µs 782.4 µs +21.24%
Simulation bitwise_not_vortex_buffer_mut[1024] 336.9 ns 278.6 ns +20.94%
Simulation chunked_varbinview_into_canonical[(1000, 10)] 213.6 µs 177.3 µs +20.48%
Simulation bitwise_not_vortex_buffer_mut[2048] 400.6 ns 342.2 ns +17.05%
Simulation decompress_rd[f64, (100000, 0.01)] 981.6 µs 845.5 µs +16.11%
Simulation decompress_rd[f64, (100000, 0.1)] 981.6 µs 845.4 µs +16.1%
Simulation varbinview_zip_fragmented_mask 6.9 ms 6.2 ms +12.4%

Tip

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


Comparing ji/row-accessor-remove (6626533) with develop (f2148d4)

Open in CodSpeed

@joseph-isaacs joseph-isaacs force-pushed the ji/row-accessor-remove branch from e5bbca4 to b555fd5 Compare June 9, 2026 14:21
@joseph-isaacs joseph-isaacs added the changelog/performance A performance improvement label Jun 9, 2026
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs force-pushed the ji/row-accessor-remove branch from b555fd5 to 6626533 Compare June 9, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/performance A performance improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants