public void Check() { if (!_hasStarted) { throw new InvalidOperationException("MemoryMonitor'ing was not started!"); } var mem = MonitoringUtils.ReadProcessMemory(); if (Min.WorkingSet > mem.WorkingSet) { Min.WorkingSet = mem.WorkingSet; } if (Min.PrivateMemorySize > mem.PrivateMemorySize) { Min.PrivateMemorySize = mem.PrivateMemorySize; } if (Min.GcTotalMemory > mem.GcTotalMemory) { Min.GcTotalMemory = mem.GcTotalMemory; } if (Max.WorkingSet < mem.WorkingSet) { Max.WorkingSet = mem.WorkingSet; } if (Max.PrivateMemorySize < mem.PrivateMemorySize) { Max.PrivateMemorySize = mem.PrivateMemorySize; } if (Max.GcTotalMemory < mem.GcTotalMemory) { Max.GcTotalMemory = mem.GcTotalMemory; } }
public void Start() { if (_hasStarted) { throw new InvalidOperationException("MemoryMonitor'ing has been already started!"); } _hasStarted = true; Min = MonitoringUtils.ReadProcessMemory(); Max = Min.Clone(); }