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]

Reply via email to