20

我刚刚让我的 rails 2.3.8 应用程序在 ruby​​ 1.9.1 上运行。要进入控制台,启动 web 服务器,任何初始化 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 倍?我这辈子都想不通。

4

2 回答 2

6

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

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

rvm install 1.9.2-head
rvm use 1.9.2-head

编辑:我用相同的应用程序尝试了 1.9.1 p378,启动时间大约需要 13 秒,而 1.9.2-head 需要 5 秒。我相信1.9.2-rc1 将于本月发布,所以这是个好消息 :)

于 2010-06-08T20:40:53.690 回答
0

这可能是因为 ruby​​ 1.9 使用 gem_prelude (它给你一个大的加载路径)而不是普通的 ruby​​gems。签出 $: 的长度——每个需要搜索一次,导致额外的时间

如果你想要旧的方式,(升级到最新版本的 ruby​​gems 并)运行 ruby​​ --disable-gems

如果您使用的是 Windows,请查看我的 faster_require gem。

http://github.com/rdp/faster_require

虽然我想,既然你提到了它,它可能对 1.9 Linux 有帮助。也许。

GL!-rp

于 2010-06-21T18:57:35.647 回答