Я недавно развернул приложение ASP.NET на своем новом блестящем VPS, и хотя я доволен общим увеличением производительности, которое VPS может дать по сравнению с решением для общего хостинга, я недоволен временем запуска моего приложения.
Моему веб-приложению требуется довольно много времени для запуска, когда мой клиент впервые попадает в него. Я не запускаю его в режиме отладки (отключил это в моем web.config), и у него нет никакой реальной работы при запуске - у меня нет кода в обработчике событий запуска моего приложения, я не запускаю никаких лишние потоки, ничего. Когда мой клиент впервые обращается к моему заявлению, ответ занимает 15-20 секунд. Последующие вызовы занимают 1-2 секунды, если я не подожду несколько минут, пока мое приложение не закроется. Затем время запуска возвращается к 15-20 секундам.
(Я знаю, что мой тест по времени очень ненаучен, эти цифры должны просто давать представление о производительности при запуске моего приложения).
Насколько я понимаю, ASP.NET состоял в том, что IIS (в данном случае 7.0) компилирует веб-приложение при первом запуске, а затем кэширует эти двоичные файлы до тех пор, пока веб-приложение не будет изменено. Мое понимание неверно?
Итак, после этого предисловия размером с книгу, вот мои вопросы:
- Я неправильно понимаю компиляцию ASP.NET? Как это на самом деле работает?
- Есть ли способ заставить IIS кэшировать мои двоичные файлы или поддерживать работу моего приложения на неопределенный срок?
- Если делать что-то из того, что задано в предыдущем вопросе, плохая идея, почему это плохая идея и что я могу сделать вместо этого, чтобы повысить производительность при запуске?
Спасибо!
Изменить: похоже, мой вопрос - небольшая копия этот вопрос (я думал, что лучше постарался найти ответ на этот вопрос здесь, ха-ха). Я думаю, однако, что мой вопрос является более всеобъемлющим, и я был бы признателен, если бы он не был закрыт как дубликат, если только здесь не появятся лучшие, уже заданные вопросы, которые касаются этого.