Uh oh!
There was an error while loading. Please reload this page.
CodeVersionManager updates - #102298
Conversation
Remove the dictionary from the CodeVersionManager and instead store the data directly on the MethodDesc. Pass allocator for codedata allocation.
Move the state data structure to typical MethodDesc instance.
1a2d0b7 to
a9a6ae5CompareAaronRobinsonMSFT
commented
May 16, 2024
AaronRobinsonMSFT
commented
May 16, 2024
No regressions found running the diagnostic tests locally with this change. |
Uh oh!
There was an error while loading. Please reload this page.
davidwrighton
left a comment
There was a problem hiding this comment.
This looks good, but as I discussed offline, before you checkin, I'd like to know what the impact is on memory consumption.
AaronRobinsonMSFT
commented
May 21, 2024
I used https://github.com/dotnet/eShop to collect memory usage numbers. I focused on the Catalog service. Overall runtime memory consumption increased by 811k with these changes. The complexity reduction for the cDAC is a substantial and @davidwrighton is working on using this new data hanging off the Main: With changes: |
davidwrighton
left a comment
There was a problem hiding this comment.
Please use the NoThrow variant of the allocator
Uh oh!
There was an error while loading. Please reload this page.
davidwrighton
commented
May 21, 2024
Great, now to integrate this with #101580 |
* Code Versioning - move native code versioning state Remove the dictionary from the CodeVersionManager and instead store the data directly on the MethodDesc. * Remove dictionary for IL version states. Remove the dictionary from the CodeVersionManager and instead store the data in the Module.
* Code Versioning - move native code versioning state Remove the dictionary from the CodeVersionManager and instead store the data directly on the MethodDesc. * Remove dictionary for IL version states. Remove the dictionary from the CodeVersionManager and instead store the data in the Module.
Remove maps on
CodeVersionManagerand places native version data on theMethodDescand the IL version data on theModule. There is no functional change intended here. The change is simply to remove two currently unnecessary map data structures. The contract API has change slightly but remains semantically the same.This is a simplification for the cDAC effort.