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