マツド・サイエンス研究所

紅玉

紅玉と言ってもリンゴじゃなくて、宝石のルビーのほう。まあ、更に、それから名前を取ったプログラム言語の事だけどね。

前回のコンテンツ

は、Ubuntu 8.04 標準の Ruby 1.8.6 を使ってプログラムの性能を測ったのだが、1月末に Ruby の新バージョン 1.9.1 がリリースされていたので、試してみた。以下、全て Ubuntu 8.04 での作業記録だが、Ubuntu 8.10 でも同様に使えるだろう。

まずは、インスト。

Ruby 1.9.1 インストの前に、Synaptic で build-essential をインストールしておく。

オブジェクト指向スクリプト言語 Rubyから、ruby-1.9.1-p0.tar.bz2 をダウンロード

$ cd /tmp
$ tar jxvf ruby-1.9.1-p0.tar.bz2
$ cd ruby-1.9.1-p0/
$ ./configure
$ make
$ sudo make install
$ sudo mv /usr/local/bin/ruby /usr/local/bin/ruby1.9
$ sudo ln -s /usr/bin/ruby /usr/local/bin/ruby

最後の二行は、Ruby 1.8.6 と同居するためのオマジナイ。これで、コマンドラインから「$ ruby」とすると Ruby 1.8.6 で、「$ ruby1.9」とすると Ruby 1.9.1 になる。Ruby 1.9.1 は、未だ ruby-kde4 とか ruby-gnome2 とかに対応していないからね。

前回と同じく

デュアルコア対応プログラミング

の testDualCore03.rb を使って、パフォーマンスを測定した。ただ、そのままだと Ruby 1.9.1 では正常動作しないので、少し書き換えた:testDualCore05.rb

・Atom Z520 Ubuntu 8.04 ruby 1.8.6

 ・シングルコア用プログラム 159.1秒 デュアルコア用プログラム 122.4秒

・Athlon64 X2 4200+ (2.2GHz) Ubuntu 8.04 ruby 1.8.6

 ・シングルコア用プログラム 55.2秒 デュアルコア用プログラム 28.2秒

・Atom Z520 Ubuntu 8.04 ruby 1.9.1

 ・シングルコア用プログラム 61.0秒 デュアルコア用プログラム 45.9秒

・Athlon64 X2 4200+ (2.2GHz) Ubuntu 8.04 ruby 1.9.1

 ・シングルコア用プログラム 22.3秒 デュアルコア用プログラム 11.9秒

Ruby 1.9.1 は吃驚するほど速い!

ただ、

デュアルコア対応プログラミング

の testDualCore01.rb は、またも全く効果がなかった。

デュアルコア対応プログラミング

にも書いたけど、ruby の 1.8.x では、ネイティブ・スレッドに対応していなかったのが、Ruby 1.9.1 なら対応してパフォーマンスが向上すると期待したんだけどねえ。

まあ、速いから良いか。

注意

ブログのコンテンツの内、「告知」など時期よって情報価値が無くなるのは除いてある。また、コンテンツに付いたコメントは書き込み者に著作権があるものと判断し、ここに持ってきていないので、コメントを見るときは、元々のブログコンテンツを参照してもらいたい。

その他、ブログ発表後、コメントなどの内容を反映するなど、内容を変更しているものもあるので、注意してほしい。