Следует ли мне настроить пул приложений ASP.NET на автоматическое повторное использование?

У меня есть несколько веб-приложений ASP.NET (4.0), которые, похоже, пропускают (небольшое количество) память при каждом запросе. Это настолько мало, что для большинства случаев использования оно не станет проблемой в течение недель или даже месяцев. Обычно я стараюсь закрывать все соединения, управляемые приложением, избегать переменных состояния (или переменных экземпляра для моего синглтона) и т. Д.

Мой вопрос: это нормальное поведение для приложений ASP.NET? Я отключил стандартное (IIS 7) поведение перезапуска пула приложений после 20 минут простоя. Я делаю это, поскольку приложению требуется несколько минут для создания своего внутреннего кеша, и я хочу избежать негативного воздействия на пользовательский интерфейс (и не заставлять их ждать запуска приложения, когда они отправят запрос).

Я знаю об этом можно смягчить путем сериализации кеша или ускорения процесса генерации кеша, но мой вопрос больше связан с его принципом: Я лично считаю использование функции автоматической перезагрузки IIS банальным подходом. Я ошибаюсь? Я просто не вижу работающего сборщика мусора, потому что использование памяти приложением недостаточно велико по сравнению с объемом доступной памяти? или мне следует глубже изучить проблемы с памятью?

Любое понимание будет признательно.

13
задан Assaf 3 March 2011 в 22:26
поделиться