Этапы для выполнения анализа памяти:

PerfView — очень полезный инструмент от Microsoft для анализа проблем с памятью и производительностью. В этом блоге я объясню шаги, которые я использую для анализа утечек памяти с помощью инструмента PerfView.

1. Соберите полный файл дампа памяти для исследуемого исполняемого файла.
Используйте Диспетчер задач->Выберите процесс->Щелкните правой кнопкой мыши «Создать файл дампа». чтобы сохранить дамп. В противном случае используйте ProcDump.exe с параметром «-ma» (доступно на веб-сайте SysInternals) для создания полного дампа памяти.

2. Откройте файл дампа с помощью PerfView.exe

3. Кнопка «Dump GC Heap» должна пройти через кучу и начать сбрасывать их в файл .GCHeap.

4. Если мы отлаживаем процесс Live, тогда ForceGC, Freeze будут иметь смысл. Так или иначе, сейчас мы проверяем уже собранный файл дампа.

5. Дважды щелкните файл дампа «GCHeap», чтобы просмотреть таблицу стека.

6. Таблица стека содержит различные параметры фильтра.

7. Такие параметры, как Inc, IncCount, помогут вам определить, какой объект занимает кучу. Раньше большая часть массива или строки находилась поверх всей выделенной памяти.

8. Мы могли бы использовать такие параметры, как Fold, Drill Into, F10, чтобы увидеть, кто действительно ссылается на эти объекты.

9. Как только мы узнаем основную ссылку, содержащую живые объекты, мы сможем найти основную причину.

10. Помимо отличного представления таблицы, PerfView также предоставляет опцию Diff, если мы собирали снимки кучи в разный интервал времени одного и того же процесса, чтобы найти протекающие объекты и корень, содержащий объекты.