GWTのコンパイルを高速化する方法

gwt-logo

 Google I/Oのセッションの一つで、Faster apps faster: Optimizing apps with the GWT Compilerというセッションがあり、そこで公開されていたテクニックです。ここで紹介されたテクニックは、リリース用のバイナリ出力を高速化するテクニックではなく、テスト用のバイナリ出力を高速化するテクニックですので、リリース用のコンパイルは従来通り気長に待ちましょう。

 まず、コンパイルオプションに以下の2つを付けます。最初のオプションは、メタデータの出力を抑制し、2つめのオプションはいくつかの最適化をキャンセルする事でコンパイル速度を上げます。

  • -XdisableClassMetadata
  • -draftCompile

 次に、モジュール作成時に自動生成されるXxxxxx.gwt.xmlの<module>タグ内に以下の記述を追加します。この記述は、safariブラウザのみを利用することを指示します。

  • <set-property name=”user.agent” value=”safari” />

 続いて、以下の記述を追加し、safari用に最適化されたDOMコントロールのみを利用するように指示します。

 <replace-with class="com.google.gwt.user.client.impl.DOMImplSafari">
   <when-type-is class="com.google.gwt.user.client.impl.DOMImpl" />
   <when-property-is name="user.agent" value="safari" />
 </replace-with>

 これでテストするブラウザが決まっている場合は、実行するJavaScriptはそこそこ速く、なおかつコンパイル速度を上げる事ができます。user.agentにはie6, ie8, gecko, gecko1_8, safari, operaが指定できるようです。

 最後に、Internationalization(I18N)を利用している場合には、以下の記述を追加する事で、テスト対象の言語以外は利用しない事を明記する事ができます。

  • <extend-property name=”locale” values=”ja_JP” />

 これで、私の環境では従来3分かかっていたコンパイル速度が1分になりました。

Be Sociable, Share!

「GWTのコンパイルを高速化する方法」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください