dotnet / corefx-tools

Place to include various misc tools for .NET and .NET Core.
MIT License
58 stars 41 forks source link

the GCCollectOnly option in perfcollect should not be collecting verbose level events #65

Open Maoni0 opened 7 years ago

Maoni0 commented 7 years ago

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).