-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Apply some obvious rich debug info optimizations (#73373)
* Stop sending many duplicate MethodDetails events for rich debug info When rich debug info is enabled we send MethodDetails events for all inlinees as otherwise no information for those may have been sent (in case they have not been jitted). During rundown this was sending a lot of duplicate events. * Compress rich debug info and optimize ETW events * Compress rich debug info when stored in the runtime. For Avalonia.ILSpy which has ~33k methods, the memory overhead of rich debug info goes from 7 MB -> 2.1 MB * ETW events do not use the delta compression, but still optimize them a little by avoiding sending out the padding and unnecessarily large types. The average size of a rich debug info ETW event goes from 259 bytes to 219 bytes for ILSpy * Add DoEncodedDeltaU32NonMonotonic and use it The inline ordinals may not be monotonically increasing and the existing DoEncodedDeltaU32 is unnecessarily inefficient for the cases where it isn't (plus, will assert). * Use non-monotonic delta compression for IL offsets Gets us an extra ~10% size reduction in my tests
- Loading branch information
1 parent
e8a85b7
commit 2db51aa
Showing
5 changed files
with
291 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.