Вопрос

У меня есть довольно большое приложение Rails (Rails 3.2.3), использующее конвейер ресурсов.В папке с ресурсами довольно много файлов.

Под 1.8.7 работает rake assets:precompile занимает 4 минуты.Это долго, но из-за огромного количества активов я готов это терпеть.

Проблема в том, что после обновления приложения до 1.9.2 запускается rake assets:precompile берет 28 минут.

Вот соответствующие версии драгоценных камней:

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)

Когда я tail -f log/production.log Я вижу, как компилируются активы, и не могу определить длительную задержку для одного актива (хотя кажется, что я вижу в журналах одни и те же активы несколько раз — предположительно потому, что для каждого актива существует несколько шагов?)

Какие еще шаги следует предпринять, чтобы диагностировать проблему?

Это было полезно?

Решение

В Ruby 1.9.2 наблюдалось серьезное снижение времени загрузки, которое, как я полагаю, росло в геометрической прогрессии с количеством загружаемых файлов.Это очень сильно ударило по приложениям Rails, и я подозреваю, что это причина значительного увеличения времени компиляции ресурсов, которое вы наблюдаете.

Это было исправлено в версии 1.9.3, поэтому попробуйте обновиться до этой версии или перенос загрузочного патча на версию 1.9.2.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top