2011-07-27 4 views
0

GWTの1行目は2行目より速く動作しますか?異なるGWTバージョンのJavaScriptでこのコードの翻訳の違いはありますか?GWTの最適化

ArrayList<String> list = new ArrayList<String>(); 

List<String> list = new ArrayList<String>(); 

私はdeclearetタイプのリストを書きます場合は、JavaScriptのパフォーマンスが最悪になります知っているように、チェックしますので、このリストのLinkedListまたはArrayListのか、リストの他のタイプです。そうですか?私は

ArrayList<String> list = new ArrayList<String>(); 

代わりの

List<String> list = new ArrayList<String>(); 

を書きます場合

それはパフォーマンスを向上させるのだろうか?

答えて

4

どちらの行も同等です。 GWTコンパイラは、「型締め」と呼ばれる最適化を実行します。あなたは、コンパイラは、モジュールのコンパイル時にJava環境のプロパティを定義することで、特定の方法を最適化する方法を見ることができます。

-Dgwt.jjs.traceMethods=Hello.onModuleLoad:OtherClass.otherMethod 

JProgramソースから:

方法をトレースするフォーマットは、コロンで区切られています「Hello.onModuleLoad:Foo.bar」のような「className.methodName」のリスト。クラスの曖昧さを解消するために、クラスを完全修飾することができます。また、メソッドのJSNIシグネチャを追加して、オーバーロードを明確にすることもできます。 "Foo.bar(IZ)"。

0

私はわからないんだけど、私はあなたがリスト<を使用する場合...>サービスメソッドの戻り値の型としてコンパイラがあれば、それはより大きなコードを生成しますので、すべてのリストの実装をコンパイルする必要があることを考えますあなたはArrayListを使用しました

0

違いはありませんが、両方とも非型JavaScript配列に変換されています。結局、String []を使うこともできたので、コンパイルされたコードに違いはありませんでした。