private static void timer_Tick(object sender, EventArgs e) { if (MemoryDiagnosticsHelper.forceGc) { GC.Collect(); } MemoryDiagnosticsHelper.UpdateCurrentMemoryUsage(); MemoryDiagnosticsHelper.UpdatePeakMemoryUsage(); }
public static void Start(TimeSpan timespan, bool forceGc) { if (MemoryDiagnosticsHelper.timer != null) { throw new InvalidOperationException("Diagnostics already running"); } MemoryDiagnosticsHelper.forceGc = forceGc; MemoryDiagnosticsHelper.recentCheckpoints = new Queue <MemoryCheckpoint>(); MemoryDiagnosticsHelper.StartTimer(timespan); MemoryDiagnosticsHelper.ShowPopup(); }
private static void UpdatePeakMemoryUsage() { if (MemoryDiagnosticsHelper.alreadyFailedPeak || MemoryDiagnosticsHelper.GetPeakMemoryUsage() < 209715200L) { return; } MemoryDiagnosticsHelper.alreadyFailedPeak = true; MemoryDiagnosticsHelper.Checkpoint("*MEMORY USAGE FAIL*"); MemoryDiagnosticsHelper.peakMemoryBlock.Text = ("FAIL!"); MemoryDiagnosticsHelper.peakMemoryBlock.Foreground = ((Brush) new SolidColorBrush(Colors.Red)); int num = Debugger.IsAttached ? 1 : 0; }
private static void UpdateCurrentMemoryUsage() { long currentMemoryUsage = MemoryDiagnosticsHelper.GetCurrentMemoryUsage(); MemoryDiagnosticsHelper.currentMemoryBlock.Text = (string.Format("{0:N}", (currentMemoryUsage / 1024L))); int safetyBand = MemoryDiagnosticsHelper.GetSafetyBand(currentMemoryUsage); if (safetyBand == MemoryDiagnosticsHelper.lastSafetyBand) { return; } MemoryDiagnosticsHelper.currentMemoryBlock.Foreground = (MemoryDiagnosticsHelper.GetBrushForSafetyBand(safetyBand)); MemoryDiagnosticsHelper.lastSafetyBand = safetyBand; }
public static void Checkpoint(string text) { if (MemoryDiagnosticsHelper.recentCheckpoints == null) { return; } if ((long)MemoryDiagnosticsHelper.recentCheckpoints.Count >= 9L) { MemoryDiagnosticsHelper.recentCheckpoints.Dequeue(); } MemoryDiagnosticsHelper.recentCheckpoints.Enqueue(new MemoryCheckpoint(text, MemoryDiagnosticsHelper.GetCurrentMemoryUsage())); }
public static void Stop() { MemoryDiagnosticsHelper.HidePopup(); MemoryDiagnosticsHelper.StopTimer(); MemoryDiagnosticsHelper.recentCheckpoints = null; }