在使用 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 了吗?