Ruby - A Programmer's Best Friend

The Great Ruby Shootout (July 2010)にLinuxにおけるRuby実行環境のベンチマーク結果が掲載されている。ベンチマークが実施されたのはUbuntu 10.4 LTS x86_64版、Intel Core 2 Quad Q6600、8GBメモリの環境。Ruby Benchmark Suiteの提供しているベンチマークのうちいくつかを抜粋して実施したという。

公開されているデータはひとつの指針にすぎないが、それぞれのRuby実行環境の特徴がでており参考になる。比較に使われたRuby実行環境は次の8つ。

  • Ruby 1.8.7 p299
  • Ruby 1.9.1 p378
  • Ruby 1.9.2 RC2
  • IronRuby 1.0 (Mono 2.4.4)
  • JRuby 1.5.1 (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20、-fastおよび-serverオプションを指定)
  • MagLev (rev 23832)
  • Ruby Enterprise Edition 2010.02
  • Rubinius 1.0.1

ベンチマーク結果の概要は次のとおり。

実行時間比較

The Great Ruby Shootout (July 2010) - Zen and the Art of Programmingより抜粋

  • Ruby 1.9、JRuby、MagLevが同じレベルで優れた性能を発揮している。
  • Ruby 1.9.2はRuby 1.9.1よりも若干性能が向上している。
  • Ruby 1.9はRuby 1.8よりも高速。
  • Rubiniusはパフォーマンス競争ではまだ改善の余地がある。
  • Ruby Enterprise EditionはRuby 1.8.7よりは若干高速。
  • Monoで動作しているIronRubyの性能はあまりよくない。

メモリ消費比較

The Great Ruby Shootout (July 2010) - Zen and the Art of Programmingより抜粋

  • Ruby 1.9.2がもっともメモリ使用量が少ない。
  • JRubyはかなり大量のメモリを消費する。

Linux/Windows比較

The Great Ruby Shootout (July 2010) - Zen and the Art of Programmingより抜粋

以前、まったく同じH/Wを使ってWindows Rubyのベンチマーク計測が実施されているため、Linux版とWindows版との比較も合わせて掲載されている。結果を見るとどの実装であってもLinux版の方が高速に動作しているほか、結果のブレがすくない。

どの実装もバージョンを経るごとに性能が向上しており、以前はCRubyがもっとも高速だったが、そこにJRubyとMagLevが食い込んでいる。また、RubiniusもRuby Enterprise Editionも同じレベルへと近づきつつあることがわかるという。なお、ここでの試験結果はサーバのような用途での利用を想定したもの。また公開されているベンチマークはあくまでもひとつの側面を表すもので、この結果がそのままアプリケーションの性能に現れるわけではないことに注意が必要。