1

В предыдущих сериях:OutOfMemoryException, большие личные данные

OutOfMemoryException, stack size is huge, large number of threads

У меня есть сервис .net окон, который потребляет много памяти. Куча GC невелика. Также размер стека невелик. То, что является большим, называется частным. Также я вижу в диспетчере задач, что мое приложение потребляет много чего-то, что taskmanager вызывает дескриптор. В моем приложении используется 2326 ручек. Я считаю, что эти ручки - это некоторые окна, которые занимают частные данные. Я вижу, что эти личные данные заняты блоками, помеченными как Блок окружения темы. Что это?

Screenshot of my application memory usage by VMMap

Screenshot of my application memory usage by Task Manager

UPDATE

Я бегу ProcessExplorer. На данный момент у меня есть два экземпляра моей службы. Я вижу, что они потребляют много виртуальной памяти для Gen2 GC. Это выглядит подозрительно. Также общий объем зарезервированных для GC Heap размеров одинаковый для двух процессов.

alt text http://i021.radikal.ru/1003/27/304433b1ae29.jpg

+0

** Process Explorer ** может показать вам, что эти ручки (и многие другие полезные вещи). Вы найдете его здесь: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx. Выберите «Вид» -> «Вид нижней панели» -> «Ручки». –

+0

Привет! Вам удалось решить эту проблему? У меня есть аналогичный (использование высокой частной памяти данных и OOM). –

ответ

2

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

Самый эффективный способ избавиться от такой проблемы - используйте команду WinDBG + SOS и! Gcroot. Пример исследования ошибок утечки памяти можно найти здесь: http://blogs.msdn.com/tess/archive/2008/04/03/net-debugging-demos-lab-7-memory-leak-review.aspx

Удачи вам!

+1

Нет, он увидит большую кучу GC. –

1

Да, довольно ресурс боров. Я предполагаю, что вы указали переменные, отмеченные атрибутом [ThreadStatic]. У вас есть way too many threads.

Смежные вопросы