Esempio n. 1
0
        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);
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }