turbo-sprockets-rails3を試してみた

Rails3といえばasset pipeline。 賛否両論ありますが僕はそのコンセプトが好きです。 ただ欠点があってCPUの性能が低いマシン(EC2 smallインスタンスなど)ではasset precompileがくそ遅い。 仕事で運用しているあるサイトでは大体150秒くらいかかってしまっている。

$ bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile
command finished in 147997ms

Rails4の目玉機能としてこのasset precompileが高速化されるらしいが、この高速化体験をrails3でも試せるのがturbo-sprockets-rails3らしい。 さっそく試してみた。

Gemfileに追加

$ vi Gemfile
gem 'turbo-sprockets-rails3' # 追加

インストール

$ bundle install

実行

$ bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile
command finished in 74795ms

半分の70秒になった。

2回目実行

$ bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile
command finished in 15647ms

2回目早くなるのは無駄なコンパイルをやってないかと思われるがこのスピードは嬉しい。 特に不具合なかったのでproductionにdeployしちゃった。