Ответ 1
У Firefox есть проблемы с просмотром на localhost на некоторых машинах Windows. Вы можете решить эту проблему, отключив ipv6, что на самом деле не рекомендуется. Использование 127.0.0.1 напрямую - это еще один способ решения проблемы.
У меня есть новая установка django 1.0, и простая страница, которая от нее требуется, занимает 5 секунд для загрузки. На компьютере моего коллеги почти нет времени.
Я запускаю сервер, используя
python manage.py testserver
Я вижу, что каждый запрос GET (PNG и таблицы стилей) занимает около половины секунды.
Еще одна странная вещь, которая, как мне кажется, связана, заключается в том, что функциональные тесты для приложения выполняются гораздо медленнее на моей машине с MySQL (порядка 100 раз медленнее, чем на моей коллеге). Когда я устанавливаю приложение для использования sqlite, они работают довольно быстро. Я хотел бы воскликнуть, что sqlite не сильно меняет время загрузки страницы, но ускоряет запуск сервера.
Это похоже на проблему с IO, но я не вижу общих проблем с производительностью на моей машине, кроме как минимум django.
Django работает на python2.4, я запускаю Vista. Я также проверил python2.5.
Благодаря ΤΖΩΤΖΙΟΥ, он должен быть проблемой DNS, потому что страница быстро загружается, как только вместо http://localhost:8000/app Я перехожу к http://127.0.0.1:8000/app.
Но что это могло быть вызвано? Мой файл хоста имеет только две записи:
127.0.0.1 localhost ::1 localhost
У Firefox есть проблемы с просмотром на localhost на некоторых машинах Windows. Вы можете решить эту проблему, отключив ipv6, что на самом деле не рекомендуется. Использование 127.0.0.1 напрямую - это еще один способ решения проблемы.
Ни один из этих сообщений не помог мне. В моем конкретном случае Джастин Кармони дал мне ответ.
Проблема
Я был сопоставлен [имя_хоста].local до 127.0.0.1 в файле /etc/hosts для упрощения целей разработки, а запросы dns занимали 5 секунд для разрешения. Иногда они быстро решались, в других случаях они не хотели.
Решение
Apple использует .local, чтобы сделать некоторую магию bonjour для новых сборок Snow Leopard (думаю, я начал замечать это после обновления до 10.6.8) и Mac OS X Lion. Если вы измените имя хоста dev, чтобы начать с локального, а не с локального, вы должны быть настроены. Кроме того, вы можете в значительной степени использовать любой TLD, кроме локального, и он будет работать без конфликтов.
Пример
test.local может стать:
и запись вашего хоста будет выглядеть следующим образом:
local.test.com 127.0.0.1
Примечание. Это решение имеет дополнительное преимущество в качестве субдомена [hostname].com, что упрощает определение имени домена приложения для API Facebook и т.д.
Возможно, вы также захотите запустить dscacheutil -flushcache
в терминале для хорошей оценки после обновления/etc/hosts
Поскольку вы сообщаете, что ваша машина для друзей не имеет задержек, и я предполагаю, что ваши и его сопоставимые компьютеры, это может быть проблема, связанная с DNS. Попробуйте добавить как клиентский, так и IP-адрес сервера в файл хостов сервера.
Если вы запустите Django on * nix, это файл /etc/hosts
. Если запустить его в MS Windows, это файл %WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS
. (Они являются текстовыми файлами и могут быть отредактированы вашим любимым текстовым редактором.)
Я думаю, что это сервер разработки, он не оптимизирован для скорости и безопасности. Я заметил, что специально обслуживающие статические файлы (т.е. Медиа) медленны.
У меня была такая же проблема в прошлом. Его можно решить, удалив следующую строку из вашего файла hosts.
::1 localhost
Как только вы уйдете, вы сможете быстро использовать localhost.
Имела ту же проблему, я заметил ее с помощью Firefox на компьютерах Vista и Windows 7. Доступ к серверу разработки 127.0.0.1:8000 решил проблему.
И если все остальное не удается, вы всегда можете cProfile ваше приложение и посмотреть, где именно находится узкое место.
У меня была такая же проблема, но она была вызвана mysqld.
Приложение работало довольно быстро при производстве с помощью wsgi и сервера mysql на одном и том же хосте, но медленно в среде разработки с опцией запуска django и удаленным сервером mysql.
Я заметил использование "show processlist", что соединения в базе данных, которые застряли в состоянии "login" с пользователем "не прошедшим проверку пользователя", и это заставляет меня заметить, что проблема, когда в процессе аутентификации.
В поисках реальной проблемы я наконец заметил, что mysqld пытается получить имя dns моего ip и отключить разрешение имен dns, я исправил проблему.
Чтобы сделать это, вы можете добавить эту строку в файл my.cnf:
скип-имя-Решимость
Перейдите на Django 1.3 или новее.
Если у вас все еще есть эта проблема в 2012 году (с использованием Chrome), убедитесь, что вы обновляете. В 1.3 исправлена ошибка связанная с медлительностью, когда dev-сервер был однопоточным.
Модернизация решила мои проблемы. Я запускал Django 1.2, так как по умолчанию на Debian Squeeze.
Отключите AV Scanning и посмотрите, не изменилось ли это. Это также может быть вызвано Vista. Обновите последний пакет обновления и повторите попытку.
Чтобы полностью обойти локальный хост без изменения файла hosts или любых настроек в Firefox, вы можете установить addon Redirector и сделать правило для перенаправления из localhost до 127.0.0.1. Используйте эти настройки
Include pattern : http://localhost*
Redirect to : http://127.0.0.1$1
Оставьте остальные поля пустыми.
У меня такая же проблема.
решение было:
так что я просто раскоментировал мои статические URL-адреса сервисов:/
Если вы заметили, что статические файлы и медиа файлы (изображения, таблицы стилей и т.д.) python manage.py runserver
особенно медленно, возможно, проблема в сервере разработки Django (python manage.py runserver
). Как отметил Хассен, этот сервер не оптимизирован по скорости.
Вы можете попробовать использовать команду runserver_plus
django-extensions с --threaded
в качестве замены для команды запуска сервера по умолчанию Django. Под капотом он использует Werkzeug в качестве многопоточного сервера WSGI. Вы можете заметить значительное улучшение времени загрузки статических файлов.