Rails在ruby 1.9.1上初始化非常慢

时间:2010-05-26 14:50:38

标签: ruby-on-rails ruby performance startup ruby-1.9.1

我刚刚在ruby 1.9.1上运行了我的rails 2.3.8 app。要进入控制台,启动网络服务器,任何初始化rails的东西,在ruby 1.9中比在ruby 1.8.7中长3-4倍。我正在使用ruby版本管理器,因此我可以轻松地在ruby 1.9和ruby 1.8.7之间切换。速度差异发生在生产和开发中。我想使用1.9,因为一旦一切运行它必须更快,但是启动时间非常糟糕,应用程序会在第一次请求时在Heroku上超时。

任何想法为什么ruby 1.9会慢3-4倍?我无法理解我的生活。

2 个答案:

答案 0 :(得分:6)

尝试使用1.9.2-head而不是1.9.1。这是Rails 3的recommended version,所以你可能会有更好的运气。 Rails 2.3.8在我刚刚在本地运行的测试中以1.9.2开头非常快速启动(也安装了Authlogic,顺便说一句)。

如果您使用的是RVM,请输入以下内容:

rvm install 1.9.2-head
rvm use 1.9.2-head

编辑:我尝试使用相同的应用程序1.9.1 p378,启动时间约为13秒,而1.9.2头则为5秒。 1.9.2-rc1将于本月发布I believe,这是个好消息:)

答案 1 :(得分:0)

这可能是因为ruby 1.9使用gem_prelude(它给你一个很大的加载路径)而不是普通的rubygems。检查$: - 每次需要搜索一次,导致额外的时间

如果您想要它的旧方法,(升级到最新版本的rubygems并运行ruby --disable-gems

如果您在Windows上,请查看我的faster_require gem。

http://github.com/rdp/faster_require

虽然我想,现在你提到它,它可能会有助于1.9 Linux。也许

GL! -rp