ASP.Net JIT-компилятор - PullRequest
       13

ASP.Net JIT-компилятор

1 голос
/ 11 марта 2011

Я испытываю медленное время отклика на веб-сервере с несколькими приложениями asp.net.Я не прекомпилирую свои приложения, поэтому понимаю, что загрузка первого запроса к приложению займет некоторое время (от 5 до 10 секунд).Однако, если приложение какое-то время находилось в режиме ожидания (20-30 минут), ответ по-прежнему медленный, хотя для IIS 7.5 установлено значение «Idle Timeout», равное 0 для пула приложений.Поэтому я рассматриваю возможность создания службы Windows, которая будет отправлять запросы отдельным приложениям каждые 10 минут, чтобы поддерживать их работу.Мой вопрос заключается в том, как JIT-компилятор обрабатывает подкаталоги в приложении.Компилирует ли JIT-компилятор весь код приложения, когда вы запрашиваете одну страницу, или этого достаточно для обработки текущего запроса?

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 марта 2011

Модель ASP.NET обычно использует создание отдельных сборок для содержимого каталога App_Code, а также файла global.asax, а затем компилирует все страницы .aspx в каждом каталоге в отдельную сборку (по запросу).

Пользовательские элементы управления и мастер-страницы также обычно составляются независимо от страниц ASPX.Я предполагаю, что вы используете «Обновляемый» вариант при развертывании.В этом случае

  1. папка app_code компилируется во время развертывания
  2. Кодовые файлы для .aspx и главных страниц компилируются во время развертывания
  3. Для каждого каталога -все файлы кода во время развертывания собраны в отдельные сборки
  4. Если у вас есть global.asax, то он компилируется при первом запросе
  5. Все файлы ascx и .master компилируются ввремя запроса (по папкам) на отдельные сборки.

Итак, учитывая вышесказанное, вам нужно будет делать запросы как минимум к одной странице в каждой папке, чтобы сайт оставался «горячим».

Если вы использовали опцию «Фиксированные имена», то у вас будет гораздо больше сборок, но этот вариант также лучше всего подходит для случаев, когда вы хотите обновить файлы .aspx.Но обязательно протестируйте свой сайт и скомпилируйте производительность на рабочем сервере.

0 голосов
/ 11 марта 2011

Взгляните на это:

Новая функция "автозапуска" ASP.NET 4 и IIS 7.5 обеспечивает четко определенный подход, который позволяет вам выполнить дорогостоящее приложение логика запуска и предварительного кэширования, которая может запустить до того, как какие-либо конечные пользователи приложение. Это позволяет вам иметь Ваше приложение "разогрето" и готово с самого начала, и доставить неизменно высокая производительность опыт.

Автозапуск приложений ASP.NET (VS 2010 и .NET 4.0 Series)

...