Что может привести к тому, что частные байты IISExpress продолжат увеличиваться без каких-либо существенных изменений в управляемой куче? - PullRequest
0 голосов
/ 18 октября 2011

У меня есть приложение ASP.NET MVC 3, которое использует Windsor для внедрения репозиториев и сессий NHibernate.Сегодня я впервые набрал OutOfMemoryException.Сначала я подумал, что это может быть потому, что я не выпускал ни одного из Transient объектов, которые создавал Виндзор.В качестве быстрого эксперимента я превратил все это в PerWebRequest образ жизни, но, похоже, он не сильно повлиял на схему использования памяти - он все еще продолжает расти.

  • Я не использую кэширование
  • Я не использую неуправляемые ресурсы
  • Я Я Выполняю JSON-сериализацию нескольких анонимных объектов
  • Действиекоторый я использую для стресс-тестирования, просто возвращает крошечный объект JSON (32 байта), поэтому нигде не задействованы крупные объекты

Что может привести к продолжению работы частных байтов IISExpress при размере управляемого кучиявляется стабильным (проверено Perfmon)?

Каким будет правильный инструмент для отладки этого?Я предполагаю, что профилировщики CLR могут быть бесполезны, потому что Perfmon не показывает утечек в управляемой куче.

1 Ответ

8 голосов
/ 18 октября 2011

Использование памяти кажется стабильным после того, как я отключил Проблеск .

Я не знаю, что это может сделать, чтобы утечка неуправляемой памяти, но просто установив on="false" вРаздел конфигурации Glimpse в web.config мгновенно стабилизирует использование памяти.

...