为什么Rails在Ruby 1.9上加载需要15秒以上?

时间:2010-04-15 17:02:03

标签: ruby-on-rails ruby

在Ruby 1.8.7上,一个新的Rails 2.3.5环境在4.325秒内加载,但在Ruby 1.9.1p378上 需要15.701秒 - 有没有人有任何想法?

这是在运行Ubuntu的32位单核笔记本电脑上。

2 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题。在我的带有SSD的机器上,对于一个全新的Rails 2.3.5项目,它是0.7s vs 1.2s,REE与1.9.1相比。在一个更大的铁轨项目中,差异更明显:它类似于20秒和10秒。

这让我怀疑这是一个与I / O相关的问题。使用修补的require和load运行:

module Kernel
  alias :load_without_tracing :load
  alias :require_without_tracing :require

  def load(filename, wrap=false)
    puts "loading #{filename}"
    load_without_tracing(filename, wrap)
  end
  def require(string)
    puts "requiring #{string}"
    require_without_tracing(string)
  end
end

说它正在加载一个很多的代码。这可能就是我们所看到的。如果1.9.1对文本文件的加载感到悲观(字符串中的编码可能是候选者),这将解释我们看到的加载时间的差异。

为什么它会是你机器上> 3的因素而且< 2 on my,我只能猜测。也许像这样的场景是向MRI开发邮件列表报告的好候选者。

答案 1 :(得分:0)

很可能你有一些具体问题。我有相同的设置32位Ubuntu,Rails 2.3.5,我也没有任何问题ruby1.9.1p378既不与ruby1.9.1p243。

您使用的是哪个应用服务器? Mongrel,Passanger ......您可以尝试使用与当前不同的一个并检查其启动速度。