05/09/25 01:36:51
>>360
かなり亀レスだけど、Groovyはプリミティブ型を使うとラッパクラスをバカスカ生成するから、
Javaでプリミティブ型を多用するような処理させるとかなり差が大きくなるよ。
正規表現みたいに、すでにJavaのほうで処理が実装されるものを呼び出すような処理は
差が小さくなる…と。
Groovyが全体的に1000倍遅いわけじゃなくて、数値計算がかなり不得手だってことじゃないか?
#ループの終了判定なんかでBooleanがバカスカ生成されてたら全体的にだめそうだな
#リフレクションだから、JRE依存?
数値型、char、booleanの変数はgroovy.langあたりにイミュータブルじゃないラッパを用意して、
そっちを使うようにできないモンかね。
instanceofとかで意図しない動作になってしまうとか、Javaコードへのパラメータ引渡しが面倒とか、
コンパイルして作ったクラスのメソッドの戻りはなんになるのかとかいろいろあるなぁ…
各ラッパクラスのうち、よく使われそうなもののインスタンスをキャッシュするとか?