コード例 #1
0
 private async Task Callback(object state)
 {
     foreach (var profiler in _gcProfilers)
     {
         await profiler.Invoke(ApplicationGCProfilingContext.GetSnapshot());
     }
     foreach (var profiler in _threadingprofilers)
     {
         await profiler.Invoke(ApplicationThreadingProfilingContext.GetSnapshot());
     }
 }
コード例 #2
0
        public static ApplicationGCProfilingContext GetSnapshot()
        {
            var context = new ApplicationGCProfilingContext()
            {
                MaxGeneration        = GC.MaxGeneration,
                Gen0_CollectionCount = GC.CollectionCount(0),
                Gen1_CollectionCount = GC.CollectionCount(1),
                Gen2_CollectionCount = GC.CollectionCount(2),
                GCLatencyMode        = GCSettings.LatencyMode.ToString(),
                GCMode      = GCSettings.IsServerGC ? ApplicationProfilingConstants.GC_Server_Mode : ApplicationProfilingConstants.GC_Workstation_Mode,
                TotalMemory = GC.GetTotalMemory(false)
            };

            return(context);
        }