-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
chore: reduce simple Map/Set ops #9761
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change is just variable name cleanup. This method is a mega hot-path. I previously benchmarked this multi-tier strategy working better overall than a single-tier strategy + there may later be gains made possible by it in terms of making remote operations flush lazily.
However, we should re-test this assumption at this point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for small arrays and sets, checking value directly is 30% faster (or more)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the change here is that we use the callback function itself as the token, stashing a bit of info directly on it. This eliminates the double map lookup and simplifies iteration.
We also convert CacheOperations (a simple set) into a direct value comparison.
Performance Report for dbe4c43 Scenario - basic-record-materialization: ✅ Performance improved
Scenario - complex-record-materialization: ✅ Performance improved
Scenario - complex-record-materialization-with-relationship-materialization: ✅ Performance improved
Scenario - relationship-materialization-simple: ☑️ Performance is stable
Scenario - relationship-materialization-complex: ✅ Performance improved
Scenario - unload: ☑️ Performance is stable
Scenario - unload-all: ✅ Performance improved
Scenario - destroy: ☑️ Performance is stable
Scenario - add-children: ☑️ Performance is stable
Scenario - unused-relationships: ✅ Performance improved
Scenario - update-with-same-state: ✅ Performance improved
Scenario - update-with-same-state-m2m: ☑️ Performance is stable
|
No description provided.