Тест на утечки памяти в приложениях .NET - PullRequest
7 голосов
/ 17 июля 2009

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

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

Ответы [ 7 ]

2 голосов
/ 17 июля 2009

Не соответствует вашим требованиям к свободе, но есть один от Red Gate, думаю, стоит предложить - ANTS Memory Profiler

Я уже использовал несколько их инструментов (некоторые на пробной версии, некоторые мы купили) и нашел их очень хорошими.

2 голосов
/ 17 июля 2009

Я могу порекомендовать http://memprofiler.com/,, но это не бесплатно.

1 голос
/ 17 июля 2009

Я использовал Microsoft CLR Profiler с некоторым успехом. Обязательно прочитайте документацию , чтобы получить все преимущества.

1 голос
/ 17 июля 2009

Позвольте вашей службе работать и использовать системный монитор для сбора информации об использовании памяти службой. Кроме того, если вы используете какие-либо неуправляемые ресурсы, убедитесь, что ваш код правильно удаляет эти ресурсы, используя IDisposable. В неуправляемой среде вы легко можете получить утечки, просто забыв освободить указатели, но это невозможно в управляемой среде. Тем не менее, если вы продолжаете размещать новые объекты и сохраняете ссылки на них, чтобы они не могли быть подвергнуты мусору, вашему сервису потребуется все больше и больше памяти.

1 голос
/ 17 июля 2009

Redgate Ants Performance Profiler может помочь. Это не бесплатно ... но есть 14-дневная пробная версия, которая может быть достаточной, чтобы ваши службы работали.

0 голосов
/ 17 июля 2009

Не забывайте, что вы можете использовать диспетчер задач Windows, чтобы обнаружить хотя бы утечки памяти в вашем сервисе.

Еще один способ использования диспетчера задач для отслеживания объектов: его переключение на вкладку «Процессы», затем перейдите к Просмотр > Выбор столбцов и отметка Объекты пользователя и объекты GDI (GDI, вероятно, бесполезен для вас, поскольку вы запускаете Службу, но другие могут найти ее полезной.)

0 голосов
/ 17 июля 2009

Profile Sharp - бесплатный (с открытым исходным кодом) профилировщик производительности и памяти для .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...