HavlakベンチマークのJavaコードをRobertHundt(リンクを参照)からGroovyに移植しました。ここで、Groovy 2.1.1を使用して、動的呼び出しを使用してベンチマークを実行しますが、計算にかかる時間はほぼ同じです。動的呼び出しを有効にするために何をしましたか?groovy--indy.jarsをgroovy-2.1.1\indyからgroovy-2.1.1\libにコピーしました。次に、groovy-2.1.1 \ libで、名前に「indy」が含まれていないすべてのgroovy.jarを削除しました。その後、IntelliJ IDEAで、[ファイル]>[設定]>[コンパイラ]>[Groovyコンパイラ]>[動的サポートの呼び出し]のフラグを有効または無効にしました。
私がインディサポートを正しくオンにしたかどうかを人々に見てもらうために、これを伝えているだけです。しかし、これは私の質問ではありません。私の質問は、動的呼び出しにより、どのような状況で計算時間の高速化が期待できるかということです。私はそれについての記事を読みましたが、invoke dynamicが行うことについてそこで説明されていることを、「この種のコードはindyサポートを使用するとより高速に実行される」というステートメントに変換するのは困難です。Havlakベンチマークは、セッターを呼び出すことで値が変更される多くのループを実行します。
問題をある程度理解している人がここにいくつかの説明をドロップしてくれると嬉しいです:-)。
ありがとう、オリバー