ASP.NET MVC – Медленная начальная загрузка

Недавно я создал веб-приложение asp.net mvc и опубликовал его в Интернете.

При первой загрузке сайта вы обнаружите, что для его фактического отображения требуется около 10-15 секунд, однако после его однократного нажатия он загружается так быстро, как я ожидаю, во второй раз. Мне просто интересно, может ли кто-нибудь понять, почему веб-сайт занимает так много времени?

Обычно приложение всегда занимает немного времени для загрузки, когда домен приложения запускается.

Вещи, способствующие этому, могут быть любыми: от плохо написанного кода (IE: Application_Start) до определенных библиотек, которые вы можете использовать (например, ORM). Сколько модhive вы загрузили?

Для начала проверьте свой web.config на печально известный . Это может иметь значительные последствия для производительности в производственной установке. Установите значение «false»!

Рекомендовать googling что-то в соответствии с « улучшением времени запуска приложений » и поисками вещей, которые могут относиться к вашему конкретному приложению.

Обновление с вашего первого комментария:

Если вы снова запустили приложение (зависает в течение нескольких секунд) через 30 минут, это, скорее всего, связано с настройками повторного использования пула приложений в IIS.

Перейдите в диспетчер IIS (это предполагает v7 +):

  1. Пулы приложений
  2. Щелкните правой кнопкой мыши пул, используемый для вашего приложения (ов)
  3. Выберите «Переработка», появится окно с надписью «Условия переработки»,
  4. Проверьте эти настройки, поскольку они будут определять, когда автоматически убивать пул приложений и перезапускать.

Что касается общей производительности, вы можете попробовать:

  1. Добавление некоторых отладочных инструкций, которые выплевывают прошедшее время в вашем методе Application_Start () или в любом другом подходящем месте, чтобы попытаться поймать то, что занимает самое длинное.
  2. Создайте полностью чистый демонстрационный проект и разверните его. Посмотрите, не страдает ли эта проблема. Если он не пытается ввести все больше и больше вашего реального кода, пока не обнаружите замедление.

Если вы действительно в тупике # 2, может быть, ваш лучший выбор, хотя он, вероятно, будет самым медленным вариантом.

У меня также была такая же проблема, с медленной загрузкой первых сайтов asp.net mvc, наконец, я нашел лучший способ для загрузки сайта, чрезвычайно быстрый в первой загрузке.

Мое решение для Windows Server 2008 r2 и IIS 7.5, но на верхних серверах Windows и в верхних версиях iis также работают с некоторыми простыми отличиями.

Прежде всего, вы должны всегда устанавливать startMode вашего пула приложений, что не даст вам спать ваш пул приложений через некоторое время. (в моем случае только этот шаг меняет мои сайты с первой загрузки от 45-55 секунд до 8-12 секунд) .

на первом этапе нет первого запроса на ваш сайт, для предварительной загрузки вашего сайта нам нужен еще один шаг, то есть путем установки модуля инициализации приложения для iis7.5 отсюда

на втором шаге вы должны установить preloadEnabled = true для вашего сайта, этот параметр – это то, что инициализация приложения добавлена ​​к настройкам сайта.

Для получения дополнительной информации и того, как вы можете установить эту опцию, обратитесь к этому сообщению в блоге: http://blogs.iis.net/wadeh/application-initialization-part-2

после второго шага мой веб-сайт загружается всего через 1-3 секунды .

В дополнение к тому, что сказал Джей .. вы должны рассмотреть использование памяти вашего пула приложений. Это особенно справедливо для сред общего хостинга, где ваш провайдер обычно будет перерабатывать пул приложений, как только будет достигнут предел памяти (а не по времени). Это снова заставит ваш сайт «перезагрузиться», вызывая первичную проблему с начальной загрузкой.

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

Существует несколько шагов для реализации:

  1. Кэш-память клиента
  2. Объединение и минимизация
  3. Кэш сервера
  4. Настройка автоматического запуска с помощью диспетчера IIS
  • Как запустить EXE с веб-страницы (asp.net)
  • .dll уже загружен в другой загрузчик classов?
  • Как использовать jQuery для события click в веб-приложении iPhone
  • Как разрешить «Ошибка HTTP 500.19 - Внутренняя ошибка сервера» на IIS7.0
  • Wysiwyg с копией / вставкой изображения
  • Можно ли отключить HttpSession в web.xml?
  • В IndexedDB есть способ сделать отсортированный составной запрос?
  • Решение проблемы двойного представления
  • Выполнение стресс-теста в веб-приложении?
  • Как отличать сеансы в браузерах?
  • Как развернуть веб-приложение Java (.war) на tomcat?
  • Interesting Posts

    Генератор случайных строк, возвращающий одну строку

    Альтернатива ng-show / -hide или как загрузить только соответствующий раздел DOM

    Показать всплывающее окно над маркером карты в MapView

    Преобразовать карту в POJO

    Использование DataAnnotations с платформой Entity Framework

    Игнорировать пространства имен в LINQ to XML

    X86 живое изображение на процессоре x64

    В Excel 2010, как я могу создать шаблон с функцией, автоматически заканчивается в последней ячейке с данными?

    Octave / Matlab: удлинить вектор, чтобы он повторялся?

    Как вызвать пользователя для запуска как учетные данные при двойном щелчке значка?

    Как использовать функцию «replace» для пользовательских директив AngularJS?

    Снимок экрана для карт Google, которые необходимо прокрутить

    Можно ли изменить расположение пакетов для NuGet?

    Временная сложность распределения памяти

    Преобразование абсолютного пути в относительный путь с учетом текущего каталога с использованием Bash

    Давайте будем гением компьютера.