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

   ## Summary
   
   - **Writes the DV envelope directly into one `bytes.Buffer`.**
   - Reserves the exact portable bitmap size after run-length encoding.
   - Patches the length field after the bitmap is written, then appends the CRC.
   - Keeps the existing wire format and Java byte-for-byte fixtures unchanged.
   
   ## Benchmark
   
   Command:
   
   `go test ./table/dv -run ^$ -bench ^BenchmarkSerializeDV$ -benchmem 
-benchtime=200ms -count=5`
   
   Median of 5 runs on Apple M1 Pro, Go 1.25.9:
   
   | Workload | Before | After |
   | --- | ---: | ---: |
   | sparse-1k | 3,153 ns/op, 7,664 B/op, 11 allocs/op | 2,018 ns/op, 2,512 
B/op, 5 allocs/op |
   | sparse-100k | 227,145 ns/op, 855,235 B/op, 14 allocs/op | 142,696 ns/op, 
205,280 B/op, 5 allocs/op |
   | sparse-1m | 336,744 ns/op, 1,807,430 B/op, 14 allocs/op | 171,052 ns/op, 
508,482 B/op, 5 allocs/op |
   
   ## Checks
   
   - `go test ./table/dv -count=1 -timeout=5m`
   - `go test ./table/dv -race -count=1 -timeout=5m`
   - `go test ./table -count=1 -timeout=5m`
   - `go test ./... -run ^$ -count=1`
   - `go vet ./table/dv`


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to