You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
0 commit comments