Не удается обнаружить утечку памяти с помощью профилировщика памяти ANTS

У меня есть пользовательское приложение, которое позволяет открывать некоторые пользовательские модели. Если я открою модель в приложении, то открою другую модель - память не освобождается от первой модели.

Когда я пытаюсь профилировать утечку памяти с помощью профилировщика (ANTS memory profiler), приложение освобождает память, и я не могу отследить утечку. Как я могу справиться с этой проблемой?График использования памяти от профилировщика

1 ответ

Решение

Когда вы делаете снимок, профилировщик памяти ANTS выполняет полную сборку мусора.

Когда вы хотите сделать снимок, я обычно делаю 2-3 снимка, пока между двумя последовательными снимками не будет различий в памяти. Затем сравните с вашим базовым снимком.

Перейти к списку экземпляров и посмотреть, если есть какие-либо экземпляры растут. Выберите Объекты с Источником, чтобы избавиться от куч системного объекта.

Если есть какие-либо растущие экземпляры, выберите один и увидите график сохранения объектов, который покажет вам, какой именно экземпляр содержит ссылку.

А также убедитесь, что вы правильно реализовали IDisposable, и удалите все одноразовые объекты и отмените подписку на все подписки на события.

Посмотрите на приведенные ниже прохождения

http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/walkthrough http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/

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