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
For CLR and CoreCLR, .NET supports AllocationTick events. CoreCLR is currently on version 4 of the event though the docs only mention version 3 right now.
NativeAOT has the GC code ifdefed to only trigger the v1 version of AllocationTick:
We discovered this while investigating for the new AllocationSampled event that is being added #100356
I'm mostly just filing the issue to document the absence of this event given other docs didn't appear specific about which events are supported and which are not. The event would generally be used by allocation profilers. In the future profilers may switch over to the new AllocationSampled event so I don't know that its particularly important to support AllocationTick, but its likely current allocation profilers don't work because of its absence.
Reproduction Steps
Use an ETW or EventPipe profiler to listen to GC verbose events, run any NativeAOT app that does a bunch of allocation.
Expected behavior
AllocationTick events would be emitted
Actual behavior
AllocationTick events are not emitted
Regression?
Don't know, but probably not.
Known Workarounds
In the future, use the AllocationSampled event instead. For now you could try not compiling the app as NativeAOT, profile it with a tool that supports CoreCLR, and hope that it has a similar allocation pattern.
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered:
Description
For CLR and CoreCLR, .NET supports AllocationTick events. CoreCLR is currently on version 4 of the event though the docs only mention version 3 right now.
NativeAOT has the GC code ifdefed to only trigger the v1 version of AllocationTick:
runtime/src/coreclr/gc/gcee.cpp
Lines 311 to 313 in 204f0e1
However it also has an empty method body in the runtime code which receives this event so nothing is logged:
runtime/src/coreclr/nativeaot/Runtime/gctoclreventsink.cpp
Lines 161 to 164 in 204f0e1
We discovered this while investigating for the new AllocationSampled event that is being added #100356
I'm mostly just filing the issue to document the absence of this event given other docs didn't appear specific about which events are supported and which are not. The event would generally be used by allocation profilers. In the future profilers may switch over to the new AllocationSampled event so I don't know that its particularly important to support AllocationTick, but its likely current allocation profilers don't work because of its absence.
Reproduction Steps
Use an ETW or EventPipe profiler to listen to GC verbose events, run any NativeAOT app that does a bunch of allocation.
Expected behavior
AllocationTick events would be emitted
Actual behavior
AllocationTick events are not emitted
Regression?
Don't know, but probably not.
Known Workarounds
In the future, use the AllocationSampled event instead. For now you could try not compiling the app as NativeAOT, profile it with a tool that supports CoreCLR, and hope that it has a similar allocation pattern.
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered: