Rails 3.1 es muy lento en el modo de desarrollo debido a los activos, ¿qué hacer?


Después de agregar piñones, Rails se está cargando muy lento en el modo de desarrollo, ¿qué debo hacer para acelerarlo?

Author: Andrew Marshall, 2011-09-23

5 answers

Echa un vistazo a https://github.com/wavii/rails-dev-tweaks.

Rails está ejecutando todos los hooks to_prepare en cada solicitud de activos de Sprockets en modo de desarrollo. Esto incluye cosas como auto - (re)carga de su código, y varias gemas sneak trabajo allí también.

Rails-dev-tweaks deshabilita to_prepare & reloading en cualquier solicitud de activos (y algunos otros - lee la primera parte de su README). Acelera su entorno de desarrollo en una gran cantidad para cualquier decentemente proyecto de tamaño. También es configurable para hacer esto para cualquier solicitud adicional que desee

 50
Author: Nevir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 14:33:14

Después de hacer referencia a varios resultados de Google con respecto a este problema, he clavado hacia abajo donde reside el problema de DNS.

El problema es: Rails está haciendo búsquedas inversas. Por lo tanto, si solicita desde una IP directa, o un nombre de host en el /etc/hosts de solo la máquina con el navegador, lo que hago a menudo porque corro todo en máquinas virtuales lanzadas juntas, y esa IP no se resuelve rápidamente en el servidor dev, Rails esperará, para cada solicitud.

Moraleja de la historia? Incluya una entrada/etc / hosts para cada IP relacionada con su desarrollo en el servidor dev (es decir, el servidor que ejecuta rails). Esto significa seguir adelante y hacer una entrada de hosts para cada falso / virtual / etc... IP en el servidor dev espera estar involucrado en las pruebas de rails, porque cuando registra solicitudes y demás, hará una búsqueda inversa, y desea que sea rápida.

 5
Author: Randy Wallace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-21 19:14:29

Solución extraña que funcionó para mí. Normalmente navegaba a mi aplicación en desarrollo a través de myapp.local: 3000, que se estableció en mi archivo hosts. Los activos se cargaban ridículamente lento.

Al navegar a mi aplicación a través de 127.0.0.1:3000, los activos se cargaron rápidamente y, además, después de usar la ip local una vez, pude navegar usando mi aplicación.local: 3000 y los activos se estaban cargando súper rápido ahora.

Ojalá pudiera decirte por qué, pero espero que ayude a alguien por ahí. Estoy en OSX 10.7.5.

 1
Author: nelsonenzo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-12 17:31:58

¿Has visto lo rápido que se ejecuta en producción? El entorno de desarrollo se comporta de manera diferente que las pruebas y la producción, y recibe más impactos de rendimiento debido a ello. Sin más información, no podemos darle una mejor respuesta.

 0
Author: Adam Eberlin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-23 07:27:13

También echa un vistazo a Turbo Sprokets aquí - https://github.com/ndbroadbent/turbo-sprockets-rails3

Parece prometedor.

 0
Author: trisweb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-23 13:55:41