Джанго очень медленно работает на моей машине

У меня свежая установка django 1.0, и простая страница, с которой я работаю, загружается за 5 секунд. На компьютере моего коллеги это почти не занимает времени.

Я запускаю сервер используя

python manage.py testserver

Я вижу, что каждый запрос GET (PNG и таблицы стилей) занимает около половины секунды.

Еще одна странная вещь, с которой, я думаю, связано, заключается в том, что функциональные тесты приложения выполняются на моей машине с MySQL намного медленнее (примерно в 100 раз медленнее, чем на машине моего коллеги). Когда я настраивал приложение на использование sqlite, они запускались довольно быстро. Я хотел бы заявить, что sqlite не сильно меняет время загрузки страницы, но ускоряет запуск сервера.

Это похоже на проблему ввода-вывода, но я не вижу общих проблем с производительностью на моей машине, кроме 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
12.12.2008 13:53:04
Вы впервые запрашиваете страницу или каждый раз? Кроме того, когда вы используете runserver это то же самое?
S.Lott 12.12.2008 14:25:21
Это самая глупая ошибка, но я столкнулся с ней за всю мою жизнь! Мой файл hosts пуст, потому что в Windows 7 эти две строки обрабатываются на самом DNS-сервере . И те же симптомы! Добавление строки «127.0.0.1 localhost» разрешает ее. Спасибо чувак!
Antony Hatchkins 4.03.2017 19:21:15
14 ОТВЕТОВ
РЕШЕНИЕ

Firefox имеет проблемы с просмотром localhost на некоторых машинах Windows. Вы можете решить эту проблему, отключив ipv6, что на самом деле не рекомендуется. Использование 127.0.0.1 напрямую - это еще один способ решения проблемы.

18
15.12.2008 23:39:06
Та же проблема и решение в Chrome под Windows 7.
Tarnay Kálmán 8.10.2009 01:08:49
Та же проблема и решение в Chrome в OS X. Я слышал слухи, что это происходит, потому что ОС выбирает IPv6 или IPv4 для первой попытки, и ей приходится ждать, пока первый запрос не будет выполнен, прежде чем попытаться использовать другую версию.
Jon 22.06.2011 20:08:38

Отключите AV-сканирование и посмотрите, будет ли это иметь значение. Это также может быть вызвано Vista. Обновите пакет обновления до последней версии и повторите попытку.

0
12.12.2008 14:09:54

Я думаю, что это сервер разработки, он не оптимизирован ни по скорости, ни по безопасности. Я заметил, что специальная обработка статических файлов (например, медиафайлов) идет медленно.

2
12.12.2008 14:25:51

Поскольку вы сообщаете, что машина вашего друга не имеет задержек, и я предполагаю, что ваш и его компьютер сопоставимы, это может быть связано с DNS. Попробуйте добавить IP-адрес клиента и сервера в файл hosts на сервере.

Если вы запускаете Django на * nix, это /etc/hostsфайл. Если запустить его на MS Windows, это %WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTSфайл. (Они представляют собой текстовые файлы и могут быть отредактированы вашим любимым текстовым редактором.)

3
12.12.2008 17:41:00
Задержка в 5 секунд всегда звучит как решение проблемы с именем для меня.
Ali Afshar 12.12.2008 17:55:14

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

1
12.12.2008 17:46:33

У меня была такая же проблема в прошлом. Это можно решить, удалив следующую строку из вашего файла hosts.

::1         localhost

После этого вы сможете снова быстро использовать localhost.

3
19.03.2009 15:04:52

Была такая же проблема, я заметил это с Firefox на компьютерах с Vista и Windows 7. Доступ к серверу разработки 127.0.0.1:8000 решил проблему.

2
25.01.2010 20:07:24

Чтобы полностью обойти localhost без изменения файла hosts или каких-либо настроек в Firefox, вы можете установить аддон Redirector и создать правило для перенаправления с localhost на 127.0.0.1. Используйте эти настройки

Include pattern : http://localhost*
Redirect to     : http://127.0.0.1$1

Оставьте другие поля пустыми.

0
5.02.2010 18:30:11

Ни один из этих постов не помог мне. В моем конкретном случае Джастин Кармони дал мне ответ.

проблема

Я отображал [hostname] .local в 127.0.0.1 в моем файле / etc / hosts для простоты разработки, а для запросов dns требовалось 5 секунд. Иногда они решались быстро, а иногда нет.

Решение

Apple использует .local для создания некоторого бонуса за счет более новых сборок Snow Leopard (думаю, я начал замечать это после обновления до 10.6.8) и Mac OS X Lion. Если вы измените свое имя хоста dev, чтобы начать с локального, а не с локального, у вас все будет готово. Кроме того, вы можете использовать любой TLD помимо локального, и он будет работать без конфликтов.

пример

test.local может стать:

  • local.test.com
  • test.dev
  • тест. [все, кроме местного]

и ваша запись в файле hosts будет выглядеть так:

local.test.com  127.0.0.1

Примечание. Это решение имеет дополнительное преимущество: он является поддоменом [hostname] .com, что упрощает указание имени домена приложения для API Facebook и т. Д.

Может также потребоваться запустить dscacheutil -flushcacheв терминале для хорошей меры после обновления / etc / hosts

7
21.03.2013 22:23:58
это также решило это для меня, и я пользователь Windows :-) спасибо!
Esben 18.04.2013 17:50:18

У меня была такая же проблема, но она была вызвана mysqld.

Приложение работало довольно быстро на производстве с wsgi и сервером mysql на одном хосте, но медленно в среде разработки с опцией django runserver и удаленным сервером mysql.

Я заметил с помощью «show processlist», что соединения в базе данных застряли в состоянии «логин» с пользователем «пользователь, не прошедший аутентификацию», и это заставляет меня заметить, что проблема в процессе аутентификации.

Ища реальную проблему, я наконец заметил, что mysqld пытался получить имя DNS моего ip и отключил разрешение имени DNS, я исправил проблему.

Для этого вы можете добавить эту строку в файл my.cnf:

пропуск имя-Решимость

1
23.08.2011 08:29:06

У меня та же проблема.

решение было:

  • Я пытался запустить локально версию, которая обычно была развернута на веб-сервере в производстве.
  • Статические файлы в производстве обслуживались через конфигурацию apache, а не через django static serve

так что я просто раскомментировал свои статические URL : /

0
30.09.2011 15:41:17

Обновление до Django 1.3 или новее.

Если у вас все еще есть эта проблема в 2012 году (с использованием Chrome), убедитесь, что вы обновляетесь. В версии 1.3 была исправлена ​​ошибка, связанная с медлительностью, когда сервер dev был однопоточным.

Обновление решило мои проблемы. Я работал под Django 1.2, так как это стандартная версия Debian Squeeze.

1
26.03.2012 12:43:31

Медленная загрузка статических файлов

Если вы заметили, что статические и мультимедийные файлы (изображения, таблицы стилей и т. Д.) Загружаются особенно медленно, возможно, проблема в сервере разработки Django ( python manage.py runserver). Как отметил Хассен , этот сервер не оптимизирован по скорости.

Вы можете попробовать использовать команду django-extensions runserver_plus с --threadedопцией в качестве замены команды Django runserver. Под капотом он использует Werkzeug в качестве многопоточного сервера WSGI. Вы можете заметить значительное улучшение времени загрузки статических файлов.

Также см .: Создание сервера разработки Django быстрее при обслуживании статических носителей.

0
12.02.2020 09:02:36

Я решил эту проблему так:

пойти setting.pyи установить

DEBUG = False
0
9.03.2020 08:58:38