-
Notifications
You must be signed in to change notification settings - Fork 824
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
Use rkyv Archive types directly instead of deserializing #2758
Comments
I've been working on implementing a similar change in one of the forks. This is definitely doable and produces significant speed-ups1, but the separation and isolation between There are definitely some preparation steps that can help to implement this more easily:
Footnotes
|
So, we had more time to work on this on our end, and while I don't anticipate having time to replicate similar changes upstream, I can at least write down some more information to whoever attempts this. Downstream we have removed a fair amount of functionality which made implementation of this feature significantly more straightforward. Of note is, for example, that we removed the ability to obtain the list of There have also been some changes from what I've written in the comment above, so just ignore that one ^^
These three steps above are largely independent and can be implemented as a preparatory step.
I have found that making changes of this nature keeps touching the entire codebase. Notably EDIT: oh, and you know where you can find me (rust-lang zulip) if you have any questions ^^ cc @syrusakbary |
This is done in the #2869, we just need to rebase it |
Wasmer uses rkyv as its serialization framework but performs a full serialization when loading a module and therefore misses out on rkyv's main feature which is zero-copy deserialization. Rkyv works by creating a separate
Archive
type for every serializable type. These types can be used straight from the byte buffer without any processing.Wasmer should switch to using the
Archive
version of serializable types in the VM to improve the speed to module loading by entirely avoiding deserialization overhead.The text was updated successfully, but these errors were encountered: