perf(buffer): store alignment exponents - #9730
Conversation
Signed-off-by: Nicholas Gates <nick@nickgates.com>
2fd0632 to
79d06ff
Compare
Merging this PR will regress 2 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | arrow_checked_add_u32_neon[16384] |
13.5 µs | 20.3 µs | -33.57% |
| ❌ | WallTime | mul_u32_nonnull_avx512 |
5.6 µs | 6.4 µs | -12.1% |
| ⚡ | WallTime | arrow_checked_add_u32_avx512[16384] |
21.3 µs | 17.6 µs | +20.83% |
| ⚡ | WallTime | arrow_checked_add_u32_avx2[16384] |
21.3 µs | 17.7 µs | +20.35% |
| ⚡ | Simulation | compact[(1024, 90)] |
1.6 µs | 1.4 µs | +11.57% |
| ⚡ | Simulation | compact[(2048, 90)] |
1.6 µs | 1.5 µs | +11.11% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ngates/buffer-alignment-exponent (79d06ff) with develop (aaed723)
Footnotes
-
164 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. ↩
-
1 benchmark was run, but is now archived. If it was deleted in another branch, consider rebasing to remove it from the report. Instead if it was added back, click here to restore it. ↩
Brings in the allocator-backed buffers (#9668, #9669, #9807) and the exponent `Alignment` (#9730). Conflicts are resolved in favour of develop's buffer API and internals: the tagged-word storage from this branch is re-applied under that API in the next commit rather than merged line by line. `Alignment` stays in `vortex-bytes`, now with develop's `u8` exponent representation and without `Deref`. The two `scalars.rs` hunks keep `into_vec`, which the next commit restores. The library builds at this commit; `vortex-buffer`'s own tests and benches target the API the next commit restores. Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bk1yU7fmfhiFrPzF888VmT
Summary
Store
Alignmentas its base-2 exponent instead of ausize.Changes
Alignmentfrom 8 bytes to 1 byte.Derefand convert to bytes explicitly withas_usize().