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
ベンチマーク結果の概要は次のとおり。
実行時間比較
- 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の性能はあまりよくない。
メモリ消費比較
- Ruby 1.9.2がもっともメモリ使用量が少ない。
- JRubyはかなり大量のメモリを消費する。
Linux/Windows比較
以前、まったく同じH/Wを使ってWindows Rubyのベンチマーク計測が実施されているため、Linux版とWindows版との比較も合わせて掲載されている。結果を見るとどの実装であってもLinux版の方が高速に動作しているほか、結果のブレがすくない。
どの実装もバージョンを経るごとに性能が向上しており、以前はCRubyがもっとも高速だったが、そこにJRubyとMagLevが食い込んでいる。また、RubiniusもRuby Enterprise Editionも同じレベルへと近づきつつあることがわかるという。なお、ここでの試験結果はサーバのような用途での利用を想定したもの。また公開されているベンチマークはあくまでもひとつの側面を表すもので、この結果がそのままアプリケーションの性能に現れるわけではないことに注意が必要。