-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Speed up type loading by storing type layout information in R2R images #45066
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
cc @alpencolt |
cc @dotnet/crossgen-contrib |
Potentially contributes to #44598 |
Mono should do this too. On platforms where quick startup is critical (Android, wasm), using precomputed layouts could be beneficial. Additionally we could presumably avoid global loader lock contention. |
Quick startup is also critical on our Tizen products like wearable, TV, and so on. |
Are there any progress about this feature? |
The type loading involves non-trivial time-consuming algorithms such as field or vtable layout. We may be able to speed up the type loading by storing additional pre-computed information in the R2R images.
A possible design is to save just enough data to be able to build MethodTable very quickly, and teach the rest of the runtime to deal with MethodTables that do not have EEClass, MethodDescs or FieldDescs as they would be created on demand.
The data format should be resilient to versioning changes by default, with option to more efficiency via use of version bubbles.
Compact type layouts (CTL) was a similar idea used on Windows Phone. For inspiration, more details about CTL can be found in Patent # 10,656,926.
The text was updated successfully, but these errors were encountered: