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

   ## Summary
   
   - copy fixed-width values directly from source buffer ranges into the output 
buffer
   - avoid creating one temporary `memory.Buffer` for every input chunk
   - add a benchmark with a fixed number of values and increasing chunk counts
   
   ## Benchmarks
   
   Apple M1 Pro, 65,536 int64 values:
   
   | chunks | old time | new time | delta | old allocs | new allocs |
   | ---: | ---: | ---: | ---: | ---: | ---: |
   | 1 | 65.92 us | 59.86 us | ~ | 7 | 5 |
   | 8 | 48.58 us | 51.12 us | ~ | 15 | 6 |
   | 64 | 64.33 us | 64.18 us | ~ | 71 | 6 |
   | 1,024 | 154.88 us | 97.89 us | -36.80% | 1,031 | 6 |
   | 8,192 | 571.7 us | 214.5 us | -62.48% | 8,199 | 6 |
   
   At 1,024 chunks, B/op drops by 14.22%. At 8,192 chunks, it drops by 52.06%.
   
   ## Tests
   
   - `go test ./...`
   


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