Не удается обнаружить утечку памяти с помощью профилировщика памяти 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/