Rails application preloader といえば spork や zeus を使っている人もいるかと思います。
今後、期待できる preloader として spring を教えてもらいました。
springはzeusと類似していますが、springはrubyで実装されています。Railsに綿密に統合されているのが他のプリローダーと比較すると大きな特徴です。
Railsコミッターが開発していることからも、今後期待できるpreloaderです。
インストール
Gemfileにspringを追加します。
group :development, :test do
gem 'spring'
end
$ bundle
これでgemが導入されます。
利用方法
springの簡単な使い方です。
$ bundle exec spring
Usage: spring COMMAND [ARGS]
The most common spring commands are:
rake Run a rake task
console Start the Rails console
runner Execute a command with the Rails runner
generate Trigger a Rails generator
test Execute a Test::Unit test
rspec Execute an RSpec spec
rakeは
$ bundle exec spring rake
rspecは
$ bundle exec spring rspec spec
などなど
一度起動すると、springが起動しているので次からはこれを利用するのではないだろうか
$ ps ax
PID TTY TIME CMD
20007 ttys001 0:01.13 spring server | app_name | started 2013-02-08 01:10:40 +0900
20009 ttys001 0:08.02 spring app | app_name | started 2013-02-08 01:10:40 +0900 | test mode
計測してみた
timeコマンドでそれぞれの時間を計測してみました。
rake spec | zeus | spring |
---|---|---|
7.958秒 | 2.102秒 | 2.076秒 |
プリローダーとして十分に機能していることは確かめられました。もう少し大規模な数のテストを実施すると、zeusとspringに違いが出てくるかも知れません。手元の環境でお試しあれ。