private void OnGCHeapStats(GCHeapStatsTraceData data) { if (data.ProcessID != _processId) { return; } NotifyGarbageCollection(data); }
private void ClrOnGcHeapStats(GCHeapStatsTraceData heapStats) { DateTime now = DateTime.Now; int currentPID = Process.GetCurrentProcess().Id; if (heapStats.ProcessID == currentPID) { gen0series.Add(new SeriesPoint(now, heapStats.GenerationSize0)); gen1series.Add(new SeriesPoint(now, heapStats.GenerationSize1)); gen2series.Add(new SeriesPoint(now, heapStats.GenerationSize2)); gen3series.Add(new SeriesPoint(now, heapStats.GenerationSize3)); } }
private void ClrOnGCHeapStats(GCHeapStatsTraceData a) { if (a.ProcessID == _currentProcessId) { if (!_isMetricAlreadyCaptured) { lock (_lock) _isMetricAlreadyCaptured = true; } _gen0Size = (ulong)a.GenerationSize0; _gen1Size = (ulong)a.GenerationSize1; _gen2Size = (ulong)a.GenerationSize2; _gen3Size = (ulong)a.GenerationSize3; } }
private void ClrOnGcHeapStats(GCHeapStatsTraceData evt) { if (!IsTargetProcess(evt)) { return; } heapStatsData.Add(new ClrEtwHeapStatsData() { Index = evt.EventIndex, TimeStamp = evt.TimeStamp, GenerationSize0 = evt.GenerationSize0, GenerationSize1 = evt.GenerationSize1, GenerationSize2 = evt.GenerationSize2, GenerationSize3 = evt.GenerationSize3, Description = $"TID: {evt.ThreadID}" }); }
private static void ClrOnGcHeapStats(GCHeapStatsTraceData data) { Console.WriteLine($"[{data.ProcessName}] Heapstats - {data.GenerationSize0:N0}|{data.GenerationSize1:N0}|{data.GenerationSize2:N0}|{data.GenerationSize3}"); }
private static void OnGCStats(object sender, GCHeapStatsTraceData e) { Console.WriteLine($" LOH: {e.GenerationSize3,11}\r\n gen2:{e.GenerationSize2,11}\r\n gen1:{e.GenerationSize1,11}\r\n gen0:{e.GenerationSize0,11}\r\n"); }
private void NotifyGarbageCollection(GCHeapStatsTraceData stats) { var listeners = GCStats; listeners?.Invoke(this, stats); }