JIT компилятор придет сюда снова? - PullRequest
1 голос
/ 22 апреля 2010

У меня есть одно сомнение, у меня есть одно веб-приложение asp.net MVC, и каждую ночь мы перезапускаем пул приложений из IIS. Теперь, когда на следующий день приходит первый запрос, требуется время, чтобы получить ответ.

Первый запрос требует времени, так как домен приложения не загружен (приложение не запущено), для запуска веб-приложения требуется некоторое время.

Теперь вопрос в том, вернется ли компилятор как раз вовремя? Значит каждое утро его нужно заново компилировать JIT?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2010

JITting, как правило, не будет иметь значительного снижения производительности. Холодный запуск процесса IIS, запуск вашего AppDomain и загрузка ваших сборок с диска, вероятно, окажут гораздо большее влияние. Кроме того, ваше приложение может иметь некоторую собственную логику запуска в файле global.asax (чтение материала из db). И не забудьте, что ваша база данных тоже может проснуться.

2 голосов
/ 22 апреля 2010

Да, приложение будет скомпилировано из IL в исполняемый код снова после перезапуска: выбрасывание домена приложения также приведет к потере собственных образов JITed.

Вы могли бы, например, избежать некоторых компиляций, поместив зависимые сборки, которые не часто меняются, в GAC и использовать NGEN на них. Это может немного ускорить процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...