Почему страницы ASP.NET намного медленнее на локальном хосте, чем на рабочем сервере - PullRequest
10 голосов
/ 25 ноября 2008

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

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

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

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

UPDATE
Большое спасибо за ответы! Просто подумал, что добавлю несколько пунктов к вышесказанному:

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

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

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

Ответы [ 10 ]

8 голосов
/ 25 ноября 2008

Если вы используете FireFox или Safari и используете Windows Vista, вам следует отключить IP-версию 6, поскольку это мешает Vista в сочетании с WebDev и FireFox / Safari ...

В поле FF введите about: config в адресной строке, установите фильтр для «IPv6» и установите для него значение FALSE!

Это ошибка с IPv6 в Windows Vista и весьма вероятный кандидат для ваших проблем ...

3 голосов
/ 04 марта 2009

Ну ... после обновления моей машины (Q9550@3.4ghz, 1TB> 100 Мб / с поискового диска) я не вижу почти никакой разницы, даже если этот компьютер работает (сервер MS SQL, IIS) по сравнению с тем же страница размещена на GoDaddy. Когда я задавал свой начальный вопрос, у меня была несколько меньшая машина, и я сравнивал ее с выделенными серверами моей фирмы. Таким образом, ответ на вопрос в основном: Они не. Спасибо за все ваши ответы, хотя!

3 голосов
/ 25 ноября 2008

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

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

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

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

1 голос
/ 25 ноября 2008

Вы на самом деле запускаете это через IIS7 или он действительно работает через ASP.NET Development Server Visual Studio? Если последнее, хорошо ... это право есть огромная причина. Сервер разработки ASP.NET оптимизирован для отладки приложений, а не для их быстрого запуска.

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

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

1 голос
/ 25 ноября 2008

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

1 голос
/ 25 ноября 2008

Вы также можете проверить, пытается ли ваш сайт получить доступ к недоступному контенту (недоступным URL) с вашего компьютера разработчика. У меня была эта проблема пару раз раньше.

1 голос
/ 25 ноября 2008

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

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

0 голосов
/ 25 ноября 2008

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

0 голосов
/ 25 ноября 2008

ЕСЛИ на сервере хранятся вещи, к которым приложение должно получить доступ, это значительно замедлит работу - да, я видел места, где был производственный сервер, на котором размещалась единственная система баз данных, доступная для всей компании, как для производства, так и для разработки.

0 голосов
/ 25 ноября 2008

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

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

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