天下人都知道 1.9.3 解决了一个 load path 的问题,大大提高了 rails 的加载速度。最近 ruby-1.9.3-p0 cumulative performance patch (https://gist.github.com/1688857) 横空出世,结果让人感觉更爽。
Production 环境下的一个应用为例,升级之前是 1.9.2-p290,加载要近二十秒:
RAIlS_ENV=production time bundle exec rails runner "Time.now"
real 0m19.085s
user 0m15.973s
sys 0m1.626s
安装上面的 1.9.3-p0 patch 后:
real 0m4.760s
user 0m3.995s
sys 0m0.726s
加上最近 RSpec,FactoryGirl 和 Rails 3.2 的提速,所有环境下都舒畅了好多!
还有即将到来的 Bitmap Marking GC,对于很多使用 fork 方式的 ruby 库将会节约内存,比如 resque 等 http://www.infoq.com/news/2012/01/bitmap-marking-gc
用 RVM 快速安装这个补丁
rvm remove 1.9.3
rvm get head
rvm install 1.9.3 --patch falcon
rvm 1.9.3 --default
我用 rbenv 通过 ruby build 安装后缺少 sockets.rb 这些标准库,必须手动把那个脚本里的 autoconf 改成 autoreconf