开发工具 Zeus:将 rails s,rails c 和 rspec 的速度提高 40 倍,Spork 可以弃用了

sefier · 2013年12月25日 · 最后由 tyaccp_guojian 回复于 2013年12月25日 · 3653 次阅读

在使用 Spork 进行测试的过程中,因为我们的 api 放在 lib 目录下,而 spork 不会重新加载 lib 目录,在 Stackoverflow 上一番搜索,决定吧测试环境的 cache_class=false,问题解决,但这个配置显然大幅降低速度。

而这个 Stackoverflow 的回答者,今年 8 月份更新了答案,提出新方案为使用 Zeus+GC-patch 1.9.3,这是啥玩意?不用不知道,一用吓一跳,我之前启动 Rails c 和 Rails s 要 22 秒,用了这个方案之后,大幅降低为 0.5 秒!测试就更不用说了,不仅速度快,而且不像 spork 那样写到 Gemfile,也不需要更改 spec_helper.rb,直接安装在本地使用!

具体的可以参考文档:

http://zaiste.net/2012/08/rails_dev_speed_up_from_spork_to_zeus/

这个 GC-Patch 已经集成到 2.0 了,所以只适合 1.9.3 的用户,2.0 的可以不用安装。如果在安装的时候遇到运行错误:Patch 'falcon' not found,说明你的版本太高了,参考:http://astrails.com/blog/2012/11/13/rvm-install-patched-ruby-for-faster-rails-startup

是否存在 bug 等,还没测试。

最后弱弱地问一句:我 out 了吗?

在 rails 4.1 版本中加上的 spring 这个 gem 不知道是不是也是实现同样的功能

#1 楼 @ywjno 是同样的, 而且 spring 是 ruby 实现的, 比 zeus 功能更全面些问题也少些 (就是 spring 不支持 windows)

#2 楼 @luikore 多谢吕大大回答(spring 能在 win 下安装但是没法使用,orz

用过几次,不过有好几次修改 Gemfile 以后,直接zeus s不管用,不知道为什么

需要 登录 后方可回复, 如果你还没有账号请 注册新账号