最新

val it : α → α = fun

<<  2007/06  >>

2007/06/09 うん、 JRubyって遅いよね

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43602で、いわゆる JRuby と cruby (1.8.6) のパフォーマンス比較の議論がありますね。わたしもちょっとしたベンチマークテストは試してみたことがあるんですが、確かに JRuby は現行の Ruby 1.8.6 と比べてさえ遅くて「どうしたものなのかなあ」と思っていたところでした。とはいえ、テストはフィボナッチ数列とかそういうレベルのモノですが……。

ちなみにそのときの速度差は yarv >>> ruby 1.8.x > jruby な感じ。それと、 jruby は jvm の初期化か Ruby のランタイムのロードか何かに時間を食うのか何かわかりませんがスクリプトの起動にもちょっと時間がかかって、コマンドを叩いてから終わるまでの時間でいえば ruby 1.8.6 よりも明らかにめちゃくちゃ遅い。まあ、ちょっとしたスクリプトならともかく、エンタープライズな用途とか本格的な重い処理を考えればそういう初期化の時間は無視してもいいと思いますけれど。

もちろん「これから速くなります」っていう可能性とか、 JVM の方が jit がこなれているから凄いことになりますよとかいう話は理解可能なのですが、今後のことを言ったら ruby 1.9 以降だってどうなるかわからんわけですし……。今のところの個人的な印象としては ruby 1.9 以降の方がパフォーマンスが上という状況は、少なくともしばらく先まで変わらないんじゃないかと思いますけどね、まあ直感ですが。

あと JRuby って(試したのは 1.0RC1 とかでしたが)、バイトコードコンパイルしようとすると case 文をコンパイルできないというエラーを吐いたりして「なんじゃそりゃー」と思ったりしたんですが、本当に 1.8.6 互換なんでしょうか。いや、スクリプト実行なら実行できるからいいんですけど、マニアックな処理のところはけっこうアヤしいんじゃないかなあと思っていたり。このほど 1.0 がリリースされたらしいですが、どうなっていますかね。

そういえば今日は RubyKaigi ですか。