Можно ли профилировать использование памяти модульных тестов?

Я смотрю на создание некоторых модульных тестов, чтобы убедиться, что ресурсы протекают (или нет), используя среду модульного тестирования, которая поставляется с Visual Studio.

В настоящее время я оцениваю последнюю версию ANTS Profiler, но не могу разобраться, позволяет ли мне принудительно сделать снимок из кода (чтобы я мог сделать снимок, запустить модульный тест несколько сотен раз, вызвать сборку мусора, сделать еще один снимок и сохранить результаты для последующего анализа).

Возможно ли это сделать с помощью ANTS/Visual Studio или мне нужно изучить варианты с другими профилировщиками?

4 ответа

Решение

JetBrains dotTrace/dotMemory и ReSharper лучше интегрированы в модульное тестирование и профилирование.

http://www.jetbrains.com/profiler/index.html

Не уверен, что ANTS имеет такую ​​интеграцию, но вы можете проконсультироваться с предпродажами Red Gate, верно?

http://www.red-gate.com/about/all_testimonials.htm

Они ожидают, что вы позвоните им для получения дополнительной информации.

Вы видели dotmemory от JetBrains?

dotMemory Unit - это инфраструктура модульного тестирования, которая позволяет вам писать тесты, которые проверяют ваш код на наличие проблем с памятью.

Например:

Когда вам нужно просто оценить объем памяти, выделенный в тесте, вы можете использовать атрибут AssertTraffic. Этот гибкий атрибут позволяет фильтровать данные трафика по типу объекта, интерфейсу или пространству имен.

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

JetBrains.ReSharper.TaskRunner.CLR...

Для будущих читателей стоит упомянуть, что вы можете принудительно делать снимки из своего кода с помощью ANTS Memory Profiler. Вам нужно ссылку

RedGate.MemoryProfiler.Snapshot.dll

который включен в каталог установки ANTS. Затем вы можете сделать снимок, позвонив

RedGate.MemoryProfiler.Snapshot.TakeSnapshot("Необязательное имя снимка")

Полная информация здесь.

Другие вопросы по тегам