feat(cubesql): PlanNormalize - reduce stack allocations #10055
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before optimizations
Key Findings
- Dev: 98 allocations = 14,112 bytes
- Release: 52 allocations = 7,488 bytes
- This is the datafusion::logical_expr::Expr enum
- 102 small allocations (8 bytes) reduced to 26 in release
- 12 tiny allocations (1 byte) completely eliminated
After using Result<Box> as return type
After using Expr as rt for grouping_set_normalize
Dev: -3.0% | Release: -2.6%
Optimize binary_expr_normalize
Summary
Result<Expr>
Result<Box<Expr>>
grouping_set_normalize
opt