Здесь мы сталкиваемся с проблемой с нашим веб-приложением. (Asp.net 2.0 Win server 2008)
Наше использование памяти для веб-сайта растет и растет, хотя я ожидаю, что оно останется на довольно статическом уровне. (У нас есть небольшое количество данных, которые хранятся в состоянии).
Желая выяснить, в чем проблема, я запустил System.GC.Collect (); несколько раз брал дамп памяти и затем загружал этот дамп памяти в WinDbg.
Когда я делаю DumpHeap -Stat, я получаю неоправданно большое число для определенного типа, зависшего в памяти.
0000064280580b40 713471 79908752 Оплата
Итак, делая DumpHeap -MT для этого типа, я получаю стек ссылок на объекты. Выбрав случайное число из них, я делаю! Gcroot, и команда возвращается, сообщая, что на нее не содержится никаких ссылок.
Для меня это как раз то время, когда сборщик мусора должен собрать эти предметы, но по какой-то причине они остались непогашенными.
Кто-нибудь может объяснить, что может происходить?