corefx-tools
corefx-tools copied to clipboard
the GCCollectOnly option in perfcollect should not be collecting verbose level events
namely the following:
DotNETRuntime:GCJoin_V2 DotNETRuntime:PinObjectAtGCTime
These can artificially increase the GC pause by potentially a lot (especially the pinobject one)
there are other verbose level events like
DotNETRuntime:FinalizeObject DotNETRuntime:IncreaseMemoryPressure DotNETRuntime:DecreaseMemoryPressure
but they are outside of GC and are ok to leave in.
Also I think it might make sense to have a separate option that includes the GCHeapSurvivalAndMovementKeyword events as they can artificially increase the GC pause by really a lot (as in, it can make GC 2x+ as long). It would be nice we have GCCollectOnly and GCOnly (that collects alloctick + verbose events like join/pinobject) and GCWithHeap (that collects GCOnly + GCHeapSurvivalAndMovementKeyword).