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]
