ruby-on-rails - 抽成 Assets :precompile takes 28 minutes on 1. 9.2

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

我有一个相当大的 Rails 应用程序 (Rails 3.2.3),使用 Assets 管道。 assets文件夹中有不少文件。

在 1.8.7 下,运行 rake assets:precompile 需要 4 分钟。这很长,但由于 Assets 的绝对数量,我愿意忍受它。

问题是应用程序升级到 1.9.2 后,运行 rake assets:precompile 需要 28 分钟

以下是相关的 gem 版本:

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 时,我看到正在编译的 Assets ,但我无法确定单个 Assets 的长时间延迟(尽管我确实看到了相同的情况 Assets 在日志中多次——大概是因为每个 Assets 有多个步骤?)

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

最佳答案

Ruby 1.9.2 在加载时间上有严重的倒退,我相信它随着加载的文件数量呈指数级增长。这对 Rails 应用造成了严重打击,我怀疑这是您看到的 Assets 编译时间大大增加的原因。

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

关于ruby-on-rails - 抽成 Assets :precompile takes 28 minutes on 1. 9.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655994/

相关文章:

java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java :97)

ruby - 如何使用 mechanize 处理登录后自动翻页?

java - grails 3加载图像外部文件夹

ruby-on-rails - 子目录和 Rails Assets 管道

ruby-on-rails - 当我增加 sidekiq 并发数时,它说我的池太小。但较小的数字也有效

ruby-on-rails - 在 ruby​​ on rails 中查找关联中的所有 nil

sql - Rails 4 中的左外连接

ruby - 可以像在 C# 中使用#region 一样在 Ruby 中使用 begin/end 吗?

ruby-on-rails - Rails 和外键

css - 为什么在 rails 中链接 css 中的图像时使用 ASSET_PATH 而不是 Image-url