Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

Вы видели dotmemory из JetBrains?

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

Например:

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

Ответ 3

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

RedGate.MemoryProfiler.Snapshot.dll

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

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

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

Ответ 4

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

JetBrains.ReSharper.TaskRunner.CLR...