-
Couldn't load subscription status.
- Fork 34
perf: Refactor the internal Value data structure and make some performance improvements #245
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
Conversation
|
I think the CI recognizes only Also, can you please un-commit the changes to |
|
Looks like the bot has added the comment and the comment says |
No that's fine. I think this works even better then, you can already commit the change and we can still see the comment and validate it's a change we want. |
This PR refactors the internal Value data structure that is used to hold a loaded or an unloaded map value. Previous we had stored
Rc<Enum>-s whereEnumwas either a loaded value (Vec<u8>) or an unloaded value (offset: Bytes). The new representation stores aOnceCellinside the enum so we no longer needRc.The new representation makes it possible to hand out plain references to the loaded values (whereas a special
Refwrapper was necessary previously). Using this, we can optimize some of the code paths leading to good performance gains.