-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
perf: Refactor the internal Value data structure and make some performance improvements #245
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 whereEnum
was either a loaded value (Vec<u8>
) or an unloaded value (offset: Bytes
). The new representation stores aOnceCell
inside 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
Ref
wrapper was necessary previously). Using this, we can optimize some of the code paths leading to good performance gains.