Медленная загрузка первой страницы сайта на ASP.NET MVC

За всё нужно платить — так предпочту начать этот пост.

Как мы все знаем, ASP.NET MVC — невероятно крутой фреймворк, который позволяет сделать конфетку мечты. Однако за богатый функционал .NET и c# нужно платить. Эта плата как раз таки взимается при первой загрузке страницы сайта.

Когда выполняется первый запрос, начинается как раз таки JIT-компиляция. После этого какое-то время компиляция не происходит (всё лежит в кэше). Однако если сайт опять будет пустовать некоторое время, то опять-таки первый запрос будет долгим.

Как же с этим бороться? Наверное, существует несколько подходов к решению данной задачи. В том числе, вы можете разобраться с настройкой IIS и пула приложений, подумать, как увеличить время кэша.

Однако, как говорит Umputun (ведущий Радио-Т), есть и деревенско-крестьянский способ решения задачи. Я нашел его на любимом SO.

Решение крайне простое. Ищем любой сервис, который мониторит активности сайта. И, собственно, заставляем этот сервис проверять работоспособность нужного ресурса каждые 5 минут. В итоге, в кэше всегда будут свежие данные, а у вас будет какая-никакая но аналитика.

Я начал использовать, по совету пользователя Rippo, сервис https://uptimerobot.com/. Он позволяет мониторить до 50 сайтов абсолютно бесплатно.

Категории: Программирование

Метки: ,