プログラマメモ2 - programmer no memo2

org.jruby.Rubyのイニシャルコスト 2008/08/31

JRubyです。

どうもjavaからJRubyにスクリプトを喰わせて実行させる際に、カクカクとなってしまいました。何度やってもカクカクするので、どうしてこんなに遅いんだろうと思って、いろいろ試してみてどうも毎回、org.jruby.Ruby.newInstance()するのがいけないようです。

下手すると 充分回数実行すると,outofmemoryが....

org.jruby.Rubyを使い回した場合、ものすごーくはやくなりました。

しかし、別の問題がおきました。
実ははじめ、スクリプト側に値を渡すときに、ruby.defineVariableを使っていて、毎回、newしていたので、別にいいやと考えていたのですが、グローバル変数であるなら複数回の呼び出しがある場合には、スクリプト側に値を渡すに不向き(値がまざってしまうから)ということになってしまいます。

bsf経由でJrubyを使うときも、同じ問題(初期化コストが馬鹿にならない)がありそうな気がします。

: