fallintoplace opened a new pull request, #1437: URL: https://github.com/apache/arrow-go/pull/1437
## What Process unaligned bitmap operations with direct word writes when the output is byte aligned. ## Why The current path builds word readers and a writer for each operation. ## Implementation - Write full words, bytes, and partial tails directly. - Keep the existing path for short inputs, unaligned output, and overlapping buffers. - Cover AND, OR, AND-NOT, XOR, and XNOR. ## Benchmark AND only, input offsets 1 and 3, byte-aligned output. Apple M1 Pro, Go 1.26.3, median of 3 runs: - **32 bytes:** 277 → 24.4 ns (**11.4x faster**). - **512 bytes:** 1,174 → 248 ns (**4.7x faster**). - **8 KiB:** 9.13 → 4.96 µs (**1.8x faster**). - Allocations for these cases: **192 → 0 B/op**. An unaligned-output fallback control at 512 bytes measured 1,269 → 1,339 ns; an alternating comparison measured 856 → 861 ns. These are bitmap operation benchmarks, not end-to-end Arrow results. `GOMAXPROCS=1 go test ./arrow/bitutil -run '^$' -bench '^BenchmarkBitmapUnalignedOps/(32B|512B|8192B)/(left1-right3-out0|left1-right3-out1)/(tail0|tail3)/and$' -benchmem -benchtime=150ms -count=3 -cpu=1` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
