LoginSignup
8

More than 5 years have passed since last update.

rails3とrails4の速度比較。およびgem springでどのくらいrailsコマンドが早くなるのか。

Last updated at Posted at 2013-12-15

条件

  1. ruby1.9.3p484 rails3.2.13 gem1.8.23
  2. ruby2.0.0p247 rails3.2.14 gem2.1.0
  3. ruby2.1.0dev rails4.0.2 gem2.2.0.preview.1 で比較を行いました。

何故この選択をしたかというと、
springの有無による速度差と、バージョンによる速度差を確認したかったからです。
gem springはrailsがベースにしているgemが2.1.0の際にgemを更新するように警告を発する
springで爆速rake生活を参照)ので、
gem2.1.0前後で速度差がどれほどのものか確認したかったからです。

rails g blog title:string description:string

routes.rb

[ProjectName]::Application.routes.draw do
 resources :blogs
end

の条件で

bundle exec time rake routesbundle exec time spring rake routes
の実行時間を5回ずつ測定し、その平均を求めました。

結果

以下の画像のようになりました。

Screenshot 2013-12-15 19.23.02.png

平均実行時間

rails3.2.13/gem1.8.23
springなし 1.25秒
springあり 0.368秒
実行時間削減率 70.56%

rails3.2.14/gem2.1.0
springなし 0.992秒
springあり 0.416秒
実行時間削減率 58.06%

rails4.0.2/gem2.2.0.preview.1
springなし 1.33秒
springあり 0.494秒
実行時間削減率 62.85%

※太字は3条件の内もっとも優秀なもの

雑感

この結果を見るに、rails4はだいぶもっさりなのかなと思えます。
実験の条件次第で変わってくるでしょうが、参考程度にお願いします。

また、springは60~70%の高速化を実現しており、
rake db:seedrake db:migrate:reset
ひいてはrails srails grspecなどで思考の流れを絶つリスクを下げてくれることでしょう。

備考

spring導入方法は
springで爆速rake生活
を参考にしていただけると幸いです。

追記

rubyのバージョンが速度に大きく影響している可能性を検証するために
rubyのバージョンを固定してrailsの速度を比較してみました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8