gem: Spring
Rails Application Preloader
そもそもプリローダとは何ぞやと問えば、Rails アプリを事前にロードしておくことで rails
rake
コマンドを高速化するためのものだ。Spring の他には Zeus や Spork がある。
Spork は少しだけ使っていたことがあるが、事前の設定やら再起動が面倒で個人的にはあまり使い勝手がよろしくなかった。Zeus は知らない。
Spring は gem をインストールするだけで設定などは不要とのこと。
ただし、git のブランチを移動した場合などは再起動のため一度停止しなければならない。まあそれは当たり前か。
$ spring stop
Gemfile に書きたかったら書けばいいじゃない
Install the
spring
gem. You can add it to your Gemfile if you like but it's optional. You now have aspring
command. Don't use it withbundle exec
or it will be extremely slow.
要は「bundle exec
と一緒に使うとめっちゃ遅くなるからやめとけ」とのことらしいので、素直に gem install
でインストール。rbenv 環境なので rbenv rehash
も忘れずに。
試してみた
まず一度停止。
$ spring stop Spring stopped.
実行。
$ time spring rake spec (略) spring rake spec 0.11s user 0.02s system 2% cpu 4.554 total
もういっちょ。
$ time spring rake spec (略) spring rake spec 0.11s user 0.03s system 5% cpu 2.775 total
確かに速くはなっているのだが、まだクラスもテストケースも全然少ないせいか期待していたほどではないな……。
他にも試してみた
2回目以降の rails c
が一瞬で起動する。すげえ。Spring 最高。