-
Notifications
You must be signed in to change notification settings - Fork 537
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(tree): Optimize certain leaf access cases #21595
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Updated description with latest benchmarks comparing main against the current state of the PR. |
⯅ @fluid-example/bundle-size-tests: +139 Bytes
Baseline commit: 4fb764f |
CraigMacomber
approved these changes
Jun 26, 2024
/azp run Build - client packages |
Azure Pipelines successfully started running 1 pipeline(s). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area: dds: tree
area: dds
Issues related to distributed data structures
base: main
PRs targeted against main branch
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.
Description
Refined PR based on the discussion in #21523 and offline chats, that works towards optimizing access to leaf values in SharedTree.
A couple of comments suggesting that the unboxing behavior of FieldNodes were causing confusion and making this seem more complicated than it ended up being, but it turns out that @CraigMacomber had already removed unboxing from FieldNodes in #18260, so this PR removes those comments and moves ahead with an initial optimization (for some cases) when accessing leaf values.
Reviewer Guidance
The review process is outlined on this wiki page.
The following div shows benchmark results from main and from this PR. Some unhydrated node cases seem to have a bit of a regression, but overall the changes seem good, particularly accessing values that are "simple leaves" (not unions) both in the unhydrated node and flex node cases. For access to leaves (simple and in unions) on object properties, all cases improved.
AB#6908