2012-04-24 21 views
13

Cada solicitud de página en mi aplicación tira alrededor de 30 activos (JavaScripts e imágenes), que son cosas de terceros en proveedores/y aplicación/cosas. Por supuesto, todo el JavaScript se combina y minimiza en producción, por lo que está bien allí, pero en desarrollo, es realmente lento. Me gusta 8 segundos para cargar la página y solo empeorará. ¿Es esto normal y qué se puede hacer para acelerarlo?Activos cargándose lentamente en desarrollo

He intentado mover imágenes desde assets/a public /, pero les sirve igual de despacio. Aproximadamente 3-4 archivos por segundo.

Esto sucede en una Macbook Pro rápida con WEBrick y Unicorn.

+0

¿Cuántos trabajadores ha abierto en unicornio? WEBrick puede gestionar una solicitud a la vez, por lo que es normal demorar 8 segundos para 30 activos. Si configura unicornio con 4-5 trabajadores, se cargará mucho más rápido – bcd

+0

Buena idea, pero acabo de probar esto con 2, 5 y 16. Desafortunadamente, no hay una diferencia notable. Para que quede claro, estoy configurando "worker_processes 5" en config/unicorn.rb y ejecutando bundle exec unicorn_rails. – mahemoff

+0

Asegúrese de consultar con Firebug o las herramientas de desarrollo de Chrome para asegurarse de lo que se está tomando el tiempo: puede ser la página principal y no los activos. Tengo casi 20 activos y el tiempo que toma es menos de 1/2 segundo (páginas con poco trabajo de base de datos). – Matthew

Respuesta

25

Desactivación de depuración de activos debería mejorar la velocidad un poco.

#development.rb 
config.assets.debug = false 
+0

muchas gracias :) – achempion

+0

esto funcionó de maravilla. – nfriend21

+0

¿Cuál es el inconveniente de hacer eso? –

1

Personalmente utilizo el servidor thin. También estaba frenando mi entorno de desarrollo (llevándome + - 12 segundos). Añadir que haga su Gemfile:

group :development do 
    gem "thin" 
end 

paquete y correr con:

thin start 

Antes de activos Precompilar Traje mi tiempo de carga hasta + -5 (con un poco de configuración y código de refactorización). Espero que ayuda

enter image description here

-fuente página web delgada

+0

Gracias por los datos de creación de perfiles. Desafortunadamente funcionó tan rápido como yo como unicornio. Toma 6 segundos cargar aproximadamente 30 archivos, que es lo que toma hasta que la aplicación se puede ejecutar (esos son principalmente archivos JS/CSS). – mahemoff

0

se puede consultar guard y sus plugins asociados a precompilar activos en el fondo como se edita en el sistema de archivos.

+0

Tendré que recurrir a esto.Creo que será mucho tiempo para configurarlo de una manera que todavía funcione correctamente con la cartera de activos en producción. – mahemoff

9

Lo más probable es que el problema sea que Rails vuelve a cargar todas las clases en cada solicitud de activos. Esta gema: https://github.com/wavii/rails-dev-tweaks soluciona el problema ajustando las reglas de autocarga de Rails.

+0

Wow eso es mucha recarga. No sabía que eso sucedía, revisaré los ajustes dev gracias. – mahemoff

+0

fenomenal! Eso realmente funcionó. – mahemoff

+1

@mahemoff Si esto resolvió el problema, debería marcarse como la respuesta. –

0

Creo que Rails tiene que compilar los activos cada vez que se desarrolla, mientras que para la producción, no lo hace, aparte de la primera vez, esto llevaría a un desarrollo lento.

Cuestiones relacionadas