django es muy lento en mi máquina

Tengo una instalación nueva de django 1.0 y una página simple desde la que se tarda 5 segundos en cargarse. En la computadora de mi colega casi no toma tiempo.

Arranco el servidor usando

 python manage.py testserver

Puedo ver que cada solicitud GET (PNG y hojas de estilo) toma aproximadamente medio segundo.

Otra cosa extraña, que creo que está relacionada, es que las pruebas funcionales de la aplicación se ejecutan mucho más lentamente en mi máquina con MySQL (por orden de 100 veces más lento que en la máquina de mi colega). Cuando configuro la aplicación para que use sqlite, se ejecutan bastante rápido. Me gustaría exclamar que sqlite no cambia mucho el tiempo que toma cargar una página, pero acelera el inicio del servidor.

Parece un problema de E / S, pero no veo problemas generales de rendimiento en mi máquina, al menos aparte de django.

Django se ejecuta en python2.4, estoy ejecutando Vista. También he comprobado python2.5.

Gracias, debe ser totalmente un problema de DNS, porque la página se carga rápidamente tan pronto como en lugar de http: // localhost: 8000 / app Voy a http://127.0.0.1:8000/app .

Pero, ¿por qué podría ser causado? Mi archivo host tiene solo dos entradas:

 127.0.0.1 localhost
 :: 1 localhost

Firefox tiene problemas para navegar a localhost en algunas máquinas con Windows. Puedes resolverlo apagando ipv6, lo cual no es realmente recomendable. Usar 127.0.0.1 directamente es otra forma de solucionar el problema.

Ninguno de estos mensajes me ayudó. En mi caso específico, Justin Carmony me dio la respuesta.

Problema

Estaba asignando [nombre de host] .local a 127.0.0.1 en mi archivo / etc / hosts para facilitar el desarrollo y las solicitudes de DNS tardaban 5 segundos en resolverse. A veces se resolvían rápidamente, otras veces no.

Solución

Apple está usando .local para hacer un poco de magia bonjour en nuevas versiones de Snow Leopard (creo que comencé a notarlo después de actualizar a 10.6.8) y Mac OS X Lion. Si cambia su nombre de host dev para comenzar con local en lugar de terminar con local, debería estar todo configurado. Además, puedes usar prácticamente cualquier TLD además del local y funcionará sin conflicto.

Ejemplo

test.local podría convertirse en:

  • local.test.com
  • test.dev
  • prueba. [cualquier cosa menos local]

y la entrada de su archivo hosts leería:

local.test.com 127.0.0.1 

Nota: esta solución tiene la ventaja adicional de ser un subdominio de [nombre de host] .com que facilita la especificación de un nombre de dominio de aplicación para las API de Facebook, etc.

Es posible que también desee ejecutar dscacheutil -flushcache en el terminal por una buena medida después de actualizar / etc / hosts

Como usted informa que la máquina de su amigo no tiene demoras, y asumo que la suya y la suya son computadoras similares, podría tratarse de un problema relacionado con el DNS. Intente agregar la dirección IP del cliente y del servidor al archivo de hosts del servidor.

Si ejecuta Django en * nix, es el /etc/hosts . Si lo ejecuta en MS Windows, es el archivo %WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS . (Son archivos de texto y pueden ser editados por su editor de texto favorito).

Creo que es el servidor de desarrollo, no está optimizado para la velocidad ni la seguridad. Noté que el servicio especial de archivos estáticos (es decir, medios) es lento.

También tuve el mismo problema, lo noté con Firefox en máquinas con Vista y Windows 7. El acceso al servidor de desarrollo 127.0.0.1:8000 resolvió el problema.

Y si todo lo demás falla, siempre puede hacer un archivo de su aplicación y ver dónde está exactamente el cuello de botella.

He tenido el mismo problema en el pasado. Se puede resolver eliminando la siguiente línea de su archivo hosts.

 ::1 localhost 

Una vez que se haya ido, debería poder utilizar localhost nuevamente, rápidamente.

Tuve el mismo problema pero fue causado por mysqld.

La aplicación funcionó bastante rápido en la producción con wsgi y un servidor mysql en el mismo host pero lento en el entorno de desarrollo con la opción django runserver y un servidor remoto mysql.

Noté que al usar “mostrar lista de procesos” las conexiones en la base de datos se quedaron bloqueadas en el estado “inicio de sesión” con el usuario “usuario no autenticado” y esto me hace notar que el problema está en el proceso de autenticación.

Buscando el problema real, finalmente noté que mysqld estaba tratando de obtener el nombre de DNS de mi ip y al desactivar el nombre de resolución de DNS, solucioné el problema.

Para hacerlo, puede agregar esta línea en el archivo my.cnf:

omitir nombre-resolución

Actualiza a Django 1.3 o más nuevo.

Si aún tienes este problema en 2012 (usando Chrome), asegúrate de estar actualizando. En 1.3, se solucionó un error relacionado con la lentitud cuando el servidor de desarrollo tenía un único hilo.

La actualización resolvió mis problemas. Estaba ejecutando Django 1.2 ya que ese es el valor predeterminado en Debian Squeeze.

Desactive la Exploración AV y vea si eso hace una diferencia. También podría ser causado por Vista. Actualice al último paquete de servicio e inténtelo de nuevo.

Para omitir completamente localhost sin alterar el archivo de hosts o cualquier configuración en Firefox, puede instalar el Redirector de complementos y hacer una regla para redirigir desde localhost a 127.0.0.1. Usa estos ajustes

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

Deja los otros campos vacíos.

Tengo el mismo problema.

la solución fue:

  • Estaba intentando iniciar localmente una versión que normalmente se implementaba en un servidor web en producción.
  • Los archivos estáticos en producción fueron servidos por una configuración de apache y no con el servicio estático django

así que acabo de comentar mis URL estáticas de servicio : /