rake资产:预编译在1.9.2上需要28分钟

时间:2012-05-18 16:02:44

标签: ruby-on-rails ruby asset-pipeline ruby-1.9.2 ruby-1.8.7

我有一个非常大的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时,我看到正在编译的资产,我无法确定单个资产的长延迟(尽管看起来我在日志中多次看到相同的资产 - 可能是因为每个资产有多个步骤?)

我应该尝试哪些其他步骤来帮助诊断问题所在?

1 个答案:

答案 0 :(得分:1)

Ruby 1.9.2在加载时间方面有严重的回归,我认为随着加载的文件数量呈指数增长。这对Rails应用程序的打击非常困难,我怀疑这是你看到的资产编译时间大大增加的原因。

这已在1.9.3中修复,因此请尝试升级到该版本或backporting the load patch to 1.9.2