「Groovy2.0の新機能」を読みましたが、@CompileStaticをいつ使用するかについて少し混乱しています。この記事では@CompileStatic
、Java7の動的な呼び出し部分を利用できなかった開発者向けにアノテーションが追加されたと述べています。
したがって、パフォーマンスの向上を求める開発者は、JDK 7で実行できない場合、Groovy 2.0で大きな変更は見られません。幸い、Groovy開発チームは、タイプチェックを許可することで、これらの開発者が他の利点の中でも興味深いパフォーマンスの向上を得ることができると考えました。静的にコンパイルされるコード。
私の質問は、JDK 7を使用していて、指示に従って--indy
フラグを追加する場合@CompileStatic
、パフォーマンスの向上を確認するために追加する必要がありますか? このブログは私がそうすることを示唆していますが、彼がEclipse内でそれを行ったことを考えると、彼が正しくコンパイルしたかどうかはわかりません。
更新:フィボナッチコードのさまざまな順列を実行したときの統計は次のとおりです。
> groovy --indy FibBoth.groovy
..........Fib (non-static indy): 1994.465
..........Fib (static indy): 529.197
> groovy FibBoth.groovy
..........Fib (non-static): 1212.788
..........Fib (static): 525.671
注:機能が独立していることを理解した今、この質問は少し混乱しているようです。質問の基本は、2つの機能が関連していると思わせたメモからの混乱にあるため、質問の文言を変更せず、違いを説明する受け入れられた回答を許可するのは理にかなっていると思います。