Ruby 2.0.0リリース! – requireが高速化されました

Ruby 2.0の大きな特徴の1つとして、requireの高速化が挙げられています。
Rails開発で起動速度に直結するので、非常にうれしいポイントです。

どのくらい速くなったのか、超簡単なサンプルで試してみました。

ソースコードはこれです。

1.upto(10000) do |i|
  require "./lib/a#{i}"
end

あらかじめ、lib以下にa1.rb~a100000.rbの約10万個のファイルを置いてあります。
各ファイルの中身は、それぞれ「a1=1」「a2=2」…「a100000=100000」と書いてあるだけです。

まずはRuby 1.9.3の結果から。

$ time ruby test.rb
(1回目)
real    0m5.247s
user    0m4.872s
sys     0m0.292s

(2回目)
real    0m5.072s
user    0m4.788s
sys     0m0.248s

(3回目)
real    0m5.208s
user    0m4.916s
sys     0m0.252s

続いてRuby 2.0.0の結果です。

$ time ruby test.rb
(1回目)
real    0m2.253s
user    0m1.976s
sys     0m0.244s

(2回目)
real    0m2.209s
user    0m1.936s
sys     0m0.244s

(3回目)
real    0m2.214s
user    0m1.976s
sys     0m0.204s

「2.5倍高速」の売り文句は本当でした!

実際、手元のRailsプロジェクトでも

bundle exec rails runner "puts 1"

の結果が、9秒→3.5秒に高速化されました。

結論:Ruby 2.0を使いましょう。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。

高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(15区分 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、CITP、Ruby Programmer Goldなどを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ