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;
 }