ruby-on-rails - present - sass ruby on rails
Perfilando activos lentos en desarrollo (2)
Hay una gema llamada quiet_assets que suprime el registro de carga de activos. En tiempos de rails 3.x, aceleró drásticamente mi modo de desarrollo. Avíseme si esto ayuda.
Cada vez que realizo un cambio en mi SASS en desarrollo, obtengo 20s + tiempos de carga al cargar mi application.css
.
He leído algunas otras preguntas y he intentado:
- Configuración
config.assets.debug = false
. - Cambiando las importaciones y requiere (yo uso las variables SASS)
- Usando Miniprof y su diagrama de hogos
- Uso de rails-asset_profile
Esto es lo que leo:
- Rails Asset Pipeline / Compass / SASS extremadamente lenta para compilar en modo desarrollo
- Compilación lenta de activos en modo de desarrollo
- activos de rake: la precompilación toma mucho tiempo para completar
He estado teniendo este problema de Rails 3.2 y ahora en 4.2.
Me estoy volviendo loco aquí. ¿Cómo encuentro el cuello de botella en este lío?
Estoy buscando una solución que me permita identificar con precisión dónde se gasta el tiempo y sugiere formas de reducir ese tiempo de compilación.
Mire la fuente de los sprockets
en el método de búsqueda en la clase Sprockets :: Manifest. Puede cambiarlo a lo siguiente:
paths.each do |path|
start = Time.now
puts "Start #{path}"
environment.find_all_linked_assets(path) do |asset|
yield asset
end
puts "Finished: #{Time.now - start}"
end
Por lo tanto, imprimirá todo el tiempo requerido para compilar cada activo. Espero que ayude :)
Editar: Este fragmento de código es de la rama master
. Puede ver y editar su versión actual de sprockets
mediante el uso de
bundle open sprockets
Salida después de los cambios:
$ rake assets:precompile
Start admin.css
I, Ä2015-11-28T10:45:26.986231 #45492Ü INFO -- : Writing /Users/sky/projects/photo_school/public/assets/admin-0e445dcfdc3bd3029943b7d3621b4156c9838eed229c3628f8c558cbb3ce1a59.css
Finished: 10.165564
EDITAR: cambió el código un poco y cambió el enlace (ayer puso el enlace a un tenedor equivocado: tenía prisa, descubrió su pregunta solo en 15 minutos antes del cierre de la recompensa :)). Revisé este código en mi proyecto y funciona correctamente (el proyecto usa la versión 3.3.3 de piñones).