1
使用JetBrains中的dotMemoryUnit
可以获得峰值内存使用情况吗?使用dotMemoryUnit监视峰值内存使用情况
我知道有可能看到内存流量:分配和集合。但是如果我想在我的测试中看到峰值内存使用率从未超过一定数量呢?
E.g.如果我的应用程序分配100MB,收集它,然后再分配100mb,然后收集,这很好。但如果它一次分配200MB,我想抓住它。
使用JetBrains中的dotMemoryUnit
可以获得峰值内存使用情况吗?使用dotMemoryUnit监视峰值内存使用情况
我知道有可能看到内存流量:分配和集合。但是如果我想在我的测试中看到峰值内存使用率从未超过一定数量呢?
E.g.如果我的应用程序分配100MB,收集它,然后再分配100mb,然后收集,这很好。但如果它一次分配200MB,我想抓住它。
看起来像我试图解决的问题很容易解决没有dotMemoryUnit。
使用PeakWorkingSet64为我做了诀窍。
使用NUnit
可能是这样的测试:
[Test]
public void Should_not_peak_more_than_200_mb()
{
var memoryCap = 200 * 1024 * 1024;
var sut = new SystemUnderTest();
sut.DoMemoryHeavyOperation()
var peakWorkingSet = Process.GetCurrentProcess().PeakWorkingSet64;
Assert.That(peakWorkingSet, Is.LessThan(memoryCap));
}
不幸的是这是不可能的,但是我们计划实施在未来这样的可能性。 –
谢谢你的回答。现在我会接受我自己的'PeakWorkingSet64'解决方案。 – derwasp