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