Pregunta

Tengo una aplicación Rails bastante grande (Rails 3.2.3), que utiliza la canalización de activos.Hay bastantes archivos en la carpeta de activos.

En 1.8.7, ejecutando rake assets:precompile tarda 4 minutos.Esto es largo, pero debido a la gran cantidad de activos, estoy dispuesto a tolerarlo.

El problema es que después de actualizar la aplicación a 1.9.2, ejecutar rake assets:precompile acepta 28 minutos.

Aquí están las versiones de gemas relevantes:

rails (= 3.2.3)
uglifier (1.2.3)
  execjs (~> 1.3.0)
therubyracer (~> 0.9.9)
  libv8 (~> 3.3.10)
sprockets (2.1.2)
  hike (~> 1.2)
  rack (~> 1.0)
  tilt (~> 1.1, != 1.3.0)

Cuando yo tail -f log/production.log Veo que los activos se están compilando y no puedo identificar el largo retraso de un solo activo (aunque parece que veo los mismos activos varias veces en los registros, ¿presumiblemente porque hay varios pasos para cada activo?)

¿Qué otros pasos debo intentar para ayudar a diagnosticar cuál es el problema?

¿Fue útil?

Solución

Ruby 1.9.2 tuvo severas regresiones en el tiempo de carga, que creo que creció exponencialmente con la cantidad de archivos cargados.Esto afectó mucho a las aplicaciones Rails, y sospecho que es la causa detrás del gran aumento en el tiempo de compilación de activos que estás viendo.

Esto se solucionó en 1.9.3, así que intente actualizar a ese o backporting del parche de carga a 1.9.2.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top