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

   ## What
   
   - Pre-size the literal set map from the input literal count.
   - Pre-size the typed literal set rebuilt during predicate binding.
   - Add benchmarks for 8, 64, 1,024, and 8,192 value `IN` sets.
   
   ## Why
   
   Large `IN` predicates currently build maps from an empty capacity. The maps 
grow and rehash while the literals are inserted, and binding builds a second 
set with the same issue.
   
   ## Performance
   
   For 8,192 `IN` values on an Apple M1 Pro, using three 250 ms benchmark runs:
   
   - Literal set construction: 1.31 MB/op to 656 KB/op, about 50% less memory.
   - Predicate binding: 1.47 MB/op to 819 KB/op, about 44% less memory.
   - Predicate binding was about 3x faster in the local median run.
   
   The exact CPU result depends on the literal count and workload. The 
allocation reduction is the main benefit.
   
   ## Tests
   
   - `go test .`
   - `go test -race .`
   - `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]


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

Reply via email to