Почему страницы ASP.NET намного медленнее на локальном хосте, чем на производственном сервере


Answers

Для этого есть как минимум две причины:

  • Во-первых, ваш локальный сервер, вероятно, запускает страницы в режиме отладки с прикрепленным отладчиком. Это заставляет все работать медленнее

  • Во-вторых, каждый раз, когда вы меняете код своих страниц или перезагружаете сервер, все страницы должны быть перекомпилированы, и это занимает некоторое время.

На вашем рабочем сервере страницы компилируются один раз, а затем скомпилированная версия предоставляется всем пользователям, и вы, вероятно, не работаете в режиме отладки (надеюсь!).

Question

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

Я разрабатываю Vista, IIS7, довольно неплохое оборудование; а сервер - это одна машина, работающая под управлением Windows Server 2003 и IIS6 на Xeon <3 ГГц и гигабитной линии.

Конечно, я понимаю, что веб-сервер специально предназначен для такого рода деятельности,
но все же кажется странным, что машина, обслуживающая до 2-300 сеансов за раз
(распространяются неравномерно на ~ 5 .Net 2.0 приложениях) через удаленную сеть (например, интернет ;-)
намного быстрее при представлении страниц, по сравнению с запуском кода локально ...

Просто то, что было у меня на уме какое-то время ...

ОБНОВИТЬ
Большое спасибо за ответы! Просто подумал, что добавлю несколько моментов:

  • Попробовали удалить все препятствия, связанные с моим локальным хостом; выключил брандмауэр и антивирус, прекратил заливать молоко в компьютерный чехол, убил любые тяжелые процессы и т. д.
  • Это не относится только к одному проекту или приложению; это то, что я заметил и задавался вопросом, так как я начал работать разработчиком (~ 1 год)
  • Не думайте, что недоступные ресурсы имеют какое-либо значение; когда я работаю локально, у меня обычно есть все активы проекта (картинки, вспышка и т. д.) локально
  • Невозможно увидеть какой-либо разностный кеширующий кеш.

Выбирайте случайную страницу из проекта, над которым я сейчас работаю, перезагружаю его несколько раз; локально я получил его примерно через 4 секунды, по сравнению с ~ 2 с от сервера. Это использовало FF и Firebug; используя Opera, я ощущал меньшую разницу, но это только моя кишка ...

Поэтому я предполагаю, что оставляет (как вы упомянули) жесткие диски и подключение к базе данных ... Просто кажется странным ....




Вы считали, что это может быть из-за кеширования? т.е. страницы на производственном сервере кэшируются, а те, что на localhost, не кэшируются.

Я также согласен с terjetyl, возможно, что ваш localhost не может найти связанный файл (например, исходный файл javascript), ваш брандмауэр может блокировать эти ....




Нет причин, по которым приложение не должно запускаться быстро локально в описанной вами настройке - возможно, у вас есть что-то еще.

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




Я удивлен, что никто еще не упомянул о жестких дисках. Жесткий диск часто является типичным узким местом в системе, а настольные жесткие диски часто намного медленнее, чем серверные (SCSI) диски. На настольной рабочей станции также может быть запущено больше процессов, все из которых используют диск одновременно, тогда как серверные машины более оптимизированы для запуска только критических серверных процессов. Но, конечно, все зависит от того, что именно делает машина.




В игре немало вещей: более быстрая сеть; лучший сервер БД, работающий в течение длительного времени и имеющий все запросы, уже выполненные до этого; ... возможно, из-за Vista :)