Tech Racho エンジニアの「?」を「!」に。
  • 開発

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を使いましょう。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。