Как профилировать использование памяти в моем проекте

Есть ли хорошие, бесплатные инструменты для использования памяти памяти в C #?

Подробности:
У меня есть проект визуализации, который использует довольно большие коллекции. Я хотел бы проверить, какие части этого проекта – на стороне обработки данных или на стороне визуализации – используют большую часть памяти, поэтому я мог бы ее оптимизировать.
Я знаю, что когда дело доходит до вычислительного размера коллекции, дело довольно простое, и я могу сделать это самостоятельно. Но есть и некоторые элементы, для которых я не могу так легко оценить использование памяти.
Использование памяти довольно велико, например, обработка файла размером 35 МБ, моя программа использует чуть более 250 МБ ОЗУ.

У меня был успех с использованием профилировщика ANTS от RedGate. Также стоит прочитать блог Брэда Абрамса, где он рассказал о профилирующей памяти

Я поражен, что никто не упомянул бесплатного профайлера CLR от Microsoft!

Я не знал об этом инструменте до недавнего времени. У меня была ошибка, из-за которой моя программа все больше выделяла память. Профилировщик CLR может определить выделение памяти «горячих точек» в вашей программе.

Я определил строку кода, ответственную за утечку, в течение 15-20 минут после установки профилировщика.

В основном, он вводит ваш код и запускает его с некоторым профилированием (что значительно замедляет ваш код, 10x-100x – официальные цифры, которые, как мне кажется).

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

Проверьте это: https://clrprofiler.codeplex.com/

Кроме того, здесь приведено руководство по использованию этого инструмента: http://geekswithblogs.net/robp/archive/2009/03/13/speedy-c-part-4-using—and-understanding—clr .aspx

JetBrains DotTrace также хорош. Я использовал как продукты RedGate, так и JetBrains, и они оба отлично справляются с выявлением узких мест и утечек.

Некоторые SKU Visual Studio include профилировщик. Это бесплатно, если у вас уже есть один из этих SKU.

Начиная с Visual Studio 2005, вы наверняка найдете профилировщик, включенный в Team Developer и Team Suite. Не уверен, что он включен в другие SKU