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.38%

⚠️ 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.

⚡ 6 improved benchmarks
❌ 2 regressed benchmarks
✅ 1511 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_varbinview_opt_canonical_into[(1000, 10)] 191.4 µs 226.9 µs -15.65%
Simulation chunked_varbinview_opt_into_canonical[(1000, 10)] 205.7 µs 241.5 µs -14.83%
Simulation extend_from_array_non_zctl_overlapping[(10000, 8)] 4 ms 2.3 ms +70.87%
Simulation extend_from_array_non_zctl_overlapping[(1000, 8)] 454 µs 286.7 µs +58.35%
Simulation chunked_bool_canonical_into[(1000, 10)] 46.9 µs 31.7 µs +48.13%
Simulation extend_from_array_non_zctl_overlapping[(1000, 32)] 949.8 µs 781.9 µs +21.48%
Simulation chunked_varbinview_canonical_into[(100, 100)] 311.3 µs 274.5 µs +13.42%
Simulation chunked_varbinview_into_canonical[(100, 100)] 363.2 µs 326.7 µs +11.17%

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 (b555fd5) with develop (998bc65)

Open in CodSpeed

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@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
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