Что такое HostCodeHeap и почему они протекают? - PullRequest
2 голосов
/ 03 октября 2010

У нас есть приложение .NET (фактически приложение IronPython).Мы заметили, что со временем приложение становится больше в памяти и вяло.

Используя WINDBG (! Eeheap -loader), мы заметили, что LoaderHeap становится больше (увеличение на 150 МБ в день).Из вывода! Eeheap видно, что увеличение связано с HostCodeHeap (objects?).

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

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2010

Вероятно, это объекты, созданные для динамически генерируемого кода. Несколько компонентов в фреймворке делают это, и вполне может быть, что IronPython использует некоторые самостоятельно.

Я слышал о подобных проблемах, когда использовал Linq-TO-SQL , сериализацию XML, скомпилированные XSLT-преобразования и другой динамически генерируемый код.

См. Также «Утечка неуправляемой памяти кучи» рядом с рисунком 2 в этой статье журнала MSDN .

...