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
there are still places that mention Gens.GenLargeObj but should include POH. in TraceManagedProcess.cs -
SurvivalPercent
OnEnd - when we update UserAllocated and GenSizeBeforeMB.
GetFreeListEfficiency - should filter out POH
GetAllocedSinceLastGCMB
GetUserAllocated - only in assert
AllocedSinceLastGCBasedOnAllocTickMB
GetUserAllocatedPerHeap - there's a remark about LOH; on new enough versions we always fill in size_before/size_after (but I don't remember if this was changed before or after we added POH)
GetHeapSizeBeforeMB - this one needs to get all generations. however while changing it I discovered it problems with PerHeapHistories. PerHeapHistories.Count is still 0 for BGC at OnEnd time because BGC' OnEnd is called during the processing of the HeapStats event while for blocking GCs it's at RestartEEStop. PerHeapHistories.Count is still 0 for BGC's HeapStats event because we have't called fire_pevents yet. I think we should fix this on the runtime side and call fire_pevents before calling do_post_gc in bgc_thread_function. also the handling of PerHeapHistories is questionable, for example, we should not have this line
if (_event.PerHeapHistories == null) { _event.PerHeapHistories = new List<GCPerHeapHistory>(); }
in ProcessPerHeapHistory as it should always be allocated.
The text was updated successfully, but these errors were encountered:
there are still places that mention
Gens.GenLargeObj
but should include POH. in TraceManagedProcess.cs -SurvivalPercent
OnEnd
- when we updateUserAllocated
andGenSizeBeforeMB
.GetFreeListEfficiency
- should filter out POHGetAllocedSinceLastGCMB
GetUserAllocated
- only in assertAllocedSinceLastGCBasedOnAllocTickMB
GetUserAllocatedPerHeap
- there's a remark about LOH; on new enough versions we always fill in size_before/size_after (but I don't remember if this was changed before or after we added POH)GetHeapSizeBeforeMB
- this one needs to get all generations. however while changing it I discovered it problems withPerHeapHistories
.PerHeapHistories.Count
is still 0 for BGC atOnEnd
time because BGC' OnEnd is called during the processing of theHeapStats
event while for blocking GCs it's atRestartEEStop
.PerHeapHistories.Count
is still 0 for BGC'sHeapStats
event because we have't calledfire_pevents
yet. I think we should fix this on the runtime side and callfire_pevents
before callingdo_post_gc
inbgc_thread_function
. also the handling ofPerHeapHistories
is questionable, for example, we should not have this lineif (_event.PerHeapHistories == null) { _event.PerHeapHistories = new List<GCPerHeapHistory>(); }
in
ProcessPerHeapHistory
as it should always be allocated.The text was updated successfully, but these errors were encountered: