groovy と JRuby

WEB のフレームワークを選定するとかの作業をやっていた人がいまして、Grails を推すレポートになっていました。
それは別にいいのですが、「JRuby + Ruby on rails は遅いので」となっていたのが気になり、確か JRuby 0.9.1 あたりで大幅に高速化し、1.0 では Ruby 本家より早いこともあるぐらいになったとか読んでいたので、気になって調べてみました。


環境は JDK1.5 の上に bsf でスクリプティングサポートを行い、JRuby 1.1 RC2 と groovy 1.5 ついでに比較用に Rhino 1.7 R1 を突っ込み、テストプログラムとしてはループ回したり、計算をしたりするだけの単純なものを作って比較しました……が、何だか groovy が圧倒的に遅いです。javascriptruby は同じぐらいなのに……。
何かプログラムに穴があるのか、それともこれが普通なのか、もう少し調べてみようと思います。
ああ、あと、Rails での比較が本番ですのでそちらも……とはいえ基本的なロジックだけでかなり違うんですよねぇ……何ででしょう??


ちなみに、最初に色々と読み込むのか、JRuby は初動がメチャクチャ遅いです。groovy や javascript でも初回は若干コストが高くつきますが、JRuby の初回のコストはかなり高いです。
CGI 的に実行するのではこの初期コストが毎回かかってくるので厳しいかもしれません。サーバーサイドでスクリプトエンジンを使いまわせるように設計してあげないといけませんね。