fallintoplace opened a new pull request, #1402:
URL: https://github.com/apache/arrow-go/pull/1402

   ## What
   Pack booleans eight bits at a time in `BitmapWriter.AppendBools`.
   
   ## Why
   Reduce per-bit work when writing boolean arrays into bitmaps.
   
   ## Implementation
   - Keep partial-byte writes and adjacent bits intact.
   - Add chunked-write coverage and an `AppendBools` benchmark.
   
   ## Benchmark
   Go 1.26.3, Apple M1 Pro (`darwin/arm64`), `GOMAXPROCS=1`; 10 runs of 200 ms 
per case. Base `de0c94e` vs head `5cd78dc`.
   
   | Metric | Before | After | Change |
   | --- | ---: | ---: | ---: |
   | AppendBools, 64 values, aligned | 149.40 ns/op | 19.13 ns/op | -87.19% |
   | AppendBools, 64 values, offset 3, split | 162.45 ns/op | 35.83 ns/op | 
-77.94% |
   | AppendBools, 1,024 values, aligned | 2,444.0 ns/op | 258.6 ns/op | -89.42% 
|
   | AppendBools, 1,024 values, offset 3, split | 2,443.0 ns/op | 276.2 ns/op | 
-88.69% |
   | AppendBools, 8,192 values, aligned | 20.497 µs/op | 2.017 µs/op | -90.16% |
   | AppendBools, 8,192 values, offset 3, split | 19.643 µs/op | 2.078 µs/op | 
-89.42% |
   | AppendBools, 65,536 values, aligned | 158.86 µs/op | 16.24 µs/op | -89.78% 
|
   | AppendBools, 65,536 values, offset 3, split | 156.13 µs/op | 16.31 µs/op | 
-89.56% |
   | Geometric mean, 16 cases | 5.849 µs/op | 706.0 ns/op | -87.93% |
   
   All 16 cases improved by 76.85%–90.16%. Allocations remained at 0 B/op and 0 
allocs/op.
   


-- 
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