Rails 2.3 + Ruby 1.9.3 启动速度仍然非常缓慢

3
当我听说Ruby 1.9.3将使具有许多“require”语句(如Rails应用程序)的应用程序启动时间减半时,我感到非常兴奋。但遗憾的是,升级后,我的Rails 2.3.14应用程序的启动时间仍然很糟糕。执行“script/console”后需50秒才能到达提示符。在此期间,它执行了1499个“require”语句。
我的问题是,如何使它启动更快?
我在environment.rb文件顶部使用以下代码片段记录所有require语句:
module Kernel
 def require_new(fn)
   puts "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')} #{fn}"
   require_old(fn)
 end
 alias_method :require_old, :require
 alias_method :require, :require_new
end

升级到Rails 3.2也。 - shingara
@shingara,感谢你的提示,但我们需要快速解决方案,因为Rails升级将需要一些时间。Rails 3.2与Ruby 1.9.3相比,启动速度更快,这是众所周知的吗? - Matt White
你使用的操作系统是什么?如果你正在使用Windows,我建议尝试Linux或Mac。在同样的硬件上,我的Rails控制台在Windows上的加载速度比在Linux上慢3至5倍。 - Evgenii
我在开发时使用Ubuntu,在生产环境中使用Debian。 - Matt White
1个回答

3

在我看来,Ruby 1.9.3的性能开箱即慢。你可以采取以下方法来提高性能:

  1. 如果您使用的是p0版本,请应用falcon补丁。点击下面链接了解如何操作: https://gist.github.com/1688857 能够优化环境变量,从而提升性能。

  2. 获取最新的Ruby 1.9.3-p125版本,下载地址为:http://www.ruby-lang.org/en/news/2012/02/16/ruby-1-9-3-p125-is-released/ 我测试了该版本,首次印象是性能比p0更好。

  3. 升级Rails,就像评论中的用户shingara所提到的那样。


感谢提供Falcon补丁的链接,看起来非常有前途。 - Matt White
猎鹰补丁是一个巨大的改进。谢谢! - Matt White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接