Example #1
0
        MemoryUsageStatus GetMemoryUsageStatus()
        {
            long   memoryUsageBytes = this.GetTotalMemoryUsage();
            double usagePercentage  = (this.maxSize <= 1) ? 100 : (double)memoryUsageBytes * 100 / this.maxSize;

            Events.MemoryUsageStats(memoryUsageBytes, usagePercentage, this.maxSize);

            MemoryUsageStatus memoryUsageStatus = GetMemoryUsageStatus(usagePercentage);

            if (memoryUsageStatus != MemoryUsageStatus.Available)
            {
                Events.HighMemoryUsageDetected(usagePercentage, this.maxSize);
            }

            this.memoryUsageStatus = memoryUsageStatus;
            return(memoryUsageStatus);
        }
Example #2
0
 public void SetMaxSizeBytes(Option <long> maxSizeBytes)
 {
     if (maxSizeBytes.HasValue)
     {
         this.isEnabled = true;
         maxSizeBytes.ForEach(x =>
         {
             this.maxSize = x;
             Events.SetMaxMemorySpaceUsage(x);
         });
     }
     else
     {
         this.isEnabled         = false;
         this.memoryUsageStatus = MemoryUsageStatus.Unknown;
         Events.Disabled();
         this.maxSize = long.MaxValue;
     }
 }
Example #3
0
 public MemorySpaceChecker(Func <long> getTotalMemoryUsage)
 {
     this.getTotalMemoryUsage = Preconditions.CheckNotNull(getTotalMemoryUsage, nameof(getTotalMemoryUsage));
     this.maxSize             = long.MaxValue;
     this.memoryUsageStatus   = MemoryUsageStatus.Unknown;
 }