13

私が正しく理解していれば、Groovyは動的に型付けされますが、ほとんどJavaのスーパーセットであるため、静的型情報がオプションで提供される場合があります。これは、複数の言語を使用する際の摩擦を避けながら、パフォーマンスが重要な部分が少ないものを作成する場合に役立ちます。タイプ注釈は、パフォーマンスが重要な部分にのみ提供できます。

Javaのようなサブセットが使用され、静的型アノテーションが提供される関数/クラスでJavaの代わりにGroovyを使用すると、パフォーマンスが低下しますか?

4

2 に答える 2

12

groovyで型を宣言しても、魔法のように速度が上がるわけではありません。それはまだグルーヴィーなコードであり、何かが動的に変更された場合に備えてMOPを通過する必要があります。タイプ情報を指定したからといって、静的リンクを取得することはありません。

グルーヴィーなコードでは十分に高速ではないパフォーマンスに敏感なものについては、実際のJavaコードを作成する必要があります。

この質問は、生成されたバイトコードを掘り下げて答えを出したの質問と非常によく似ており、何かを入力しても速度が上がらないことを示しています。

于 2011-09-05T01:01:22.403 に答える
8

Groovy++を使用することもできます。groovypp.jarをクラスパスにドロップし、パッケージ、クラス、またはメソッドに@Typedアノテーションを付けます。注釈付きコードはMOPをバイパスするため、実質的にJavaコードと同じくらい高速です。

また、型を宣言しなくても、@ Typedコードは、コンパイル時に可能であれば型を推測します。

于 2011-09-06T12:50:34.170 に答える