Несколько баллов ...
В вашем приложении есть как собственный, так и управляемый код, поэтому постарайтесь выяснить, какая половина является проблемным ребенком.Запустите perfmon с управляемыми и собственными счетчиками памяти, чтобы увидеть, в чем проблема.Если как управляемые, так и собственные счетчики со временем увеличиваются, то у вас есть потенциальная утечка.Если со временем увеличивается только собственный, то виноват собственный код.
Я всегда использую следующие 5 счетчиков:
- .NET CLR Memory |# Всего зафиксировано байт
- .NET CLR Memory |# Всего зарезервированных байтов
- .NET CLR Memory |Размер кучи больших объектов
- Процесс |Частные байты
- Процесс |Виртуальные байты
Также обратите внимание на размер кучи больших объектов.Вы также можете просмотреть содержимое этих куч в WinDbg.Наконец, в то время как объекты в LOH со временем будут собирать мусор, LOH никогда не уплотняется, поэтому LOH со временем подвергается фрагментации, что становится заметным, если вы случайно разместите в LOH слишком часто.
РЕДАКТИРОВАТЬУ меня никогда не было большой удачи с VMMap, вместо этого я в основном использую perfmon и WinDbg, а иногда и DebugDiag.