2016-09-16 11 views
1

Возможно ли использовать пиковое использование памяти с помощью dotMemoryUnit от JetBrains?Использование памяти пиковой памяти с помощью dotMemoryUnit

Я знаю, что можно увидеть трафик памяти: распределения и коллекции. Но что, если я хочу видеть, что во время моего теста пиковое использование памяти никогда не превышало определенной суммы?

E.g. если мое приложение распределяет 100 Мб, собирает его, а затем выделяет 100 Мб больше, за которым следует коллекция, это нормально. Но если он одновременно выделяет 200 МБ, я хочу его поймать.

+1

К сожалению, это не возможно, но мы планируем реализовать такую ​​возможность в будущем. –

+0

Благодарим вас за ответ. Я сейчас приму свое решение 'PeakWorkingSet64'. – derwasp

ответ

1

Похоже, проблема, которую я попытался решить, легко разрешима без 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)); 
    }