public void IsUnderPressureReturnsFalseWhenAvailableMemoryIsUnknown() { // arrange var stats = new FakeHostEnvironmentStatistics(); var options = new MemoryGovernanceOptions(); var monitor = new MemoryPressureMonitor(stats, Options.Create(options)); // act var result = monitor.IsUnderPressure; // assert Assert.False(result); }
public async Task CyclesAsync() { // arrange var weakActivationCollectionInterval = TimeSpan.FromSeconds(123); var options = new MemoryGovernanceOptions { WeakActivationCollectionInterval = weakActivationCollectionInterval }; var monitor = new FakeMemoryPressureMonitor(); var timerFactory = new FakeSafeTimerFactory(); // act using var governor = new MemoryResourceGovernor(Options.Create(options), NullLogger <MemoryResourceGovernor> .Instance, monitor, timerFactory); await governor.StartAsync(default).ConfigureAwait(false);
public void IsUnderPressureReturnsFalseWhenTotalMemoryNotAvailable() { // arrange var stats = new FakeHostEnvironmentStatistics { AvailableMemory = 2000 }; var options = new MemoryGovernanceOptions { LowMemoryBytesThreshold = 1000 }; var monitor = new MemoryPressureMonitor(stats, Options.Create(options)); // act var result = monitor.IsUnderPressure; // assert Assert.False(result); }
public void IsUnderPressureReturnsTrueWhenRatioBelowThreshold() { // arrange var stats = new FakeHostEnvironmentStatistics { AvailableMemory = 4000, TotalPhysicalMemory = 10000 }; var options = new MemoryGovernanceOptions { LowMemoryBytesThreshold = 1000, LowMemoryThreshold = 0.5 }; var monitor = new MemoryPressureMonitor(stats, Options.Create(options)); // act var result = monitor.IsUnderPressure; // assert Assert.True(result); }