Я занимаюсь разработкой сайтов на платформе .NET. Я обычно развертываю эти сайты на своем локальном IIS, чтобы я мог проверить их и увидеть их функциональность перед запуском. Тем не менее, каждый раз, когда я перезагружаю Windows, кажется, что сайты запускаются долго.
Я знаю о JIT, и я также знаю об этом вопросе , но он не отвечает на мой вопрос.
JIT происходит каждый раз, когда вы перезагружаете Windows? Это связано с созданием процесса w3wp.exe? Почему сайты так медленно работают при первом запросе после каждого перезапуска?
Ответы:
Эта проблема - компиляция JIT. Пулу приложений требуется время для сборки библиотек, прежде чем он сможет начать их обработку. Это можно ускорить с помощью сценария разминки, но это то, что должно произойти. Это также зависит от того, используете ли вы веб-сайт или проект веб-приложения. Веб-сайт - это JIT для каждой страницы, поэтому самый первый хит медленный, и у каждого нового обращения также есть дополнительное время компиляции. Проекты веб-приложений предварительно скомпилированы, поэтому не следует подвергаться такому удару, но библиотеки по-прежнему необходимо загружать. Чем больше у вас библиотек / инструментов, тем хуже будет этот хит. Вот несколько ссылок, которые обсуждают разминку:
http://weblogs.asp.net/gunnarpeipman/archive/2010/01/22/iis-application-warm-up-module.aspx http://blogs.iis.net/steveschofield/archive/2009/05/30 /application-pool-warm-up.aspx /programming/2063461/iis-web-applications-warmup http://sharepoint.smayes.com/2011/06/application-pool-specific-warm -До-скрипты /
источник
Медленная реакция на ваш первый запрос заключается в том, что IIS только запускает / загружает сайт или пул приложений для своего первого входящего запроса. И через фиксированный промежуток времени на сервер не приходят новые входящие запросы, IIS снова останавливает сайт (перезапуск пула приложений).
ASP.NET 4.0 имеет новую функцию под названием автозапуск. С помощью этой функции вы можете настроить запуск пула приложений или отдельного сайта перед любыми запросами. Это срабатывает во время загрузки (при запуске IIS) или при обновлении сайта ASP.NET (который останавливает сайт).
Вам нужен IIS 7.5, чтобы использовать это.
Есть также возможность выполнить некоторые дополнительные задачи, когда включается автозапуск, напр. предварительно загрузить данные в кеш.
источник
Частью проблемы также является GAC. Места библиотек там должны будут проверяться на безопасность каждый раз, когда они загружаются - это означает, что выполняется целый ряд работ типа шифрования, и это сильно замедляет работу. Некоторое время назад от MS говорилось о производительности WPF, которая описывала эту проблему - их ответ был «не помещайте материал в GAC, если вы не можете с этим поделать»
источник
IIS имеет раздражающую (иногда) функцию для веб-сайтов с низким трафиком. Он перерабатывает неиспользуемые рабочие процессы - которые вызывают первого пользователя на сайт; иногда очень большая задержка (более 30 секунд). http://dotnettimes.wordpress.com/2014/03/24/fixing-slow-initial-load-for-iis-web-site/
источник