Exemple #1
0
        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;
            }
        }
Exemple #2
0
        public void Start()
        {
            if (_hasStarted)
            {
                throw new InvalidOperationException("MemoryMonitor'ing has been already started!");
            }

            _hasStarted = true;

            Min = MonitoringUtils.ReadProcessMemory();
            Max = Min.Clone();
        }