GWT 2.0快適すぎワロタ

先に結論。1.7と2.0では快適さに差があります。2.0で開発するほうが幸せになれます。


まず前提としてGWT 1.7では以下の2つを選択する必要がありました。

  • 実行速度は速いがjavascriptコンバートに時間がかかる通常のモード
  • コンパイル速度は速いが、実行スピードがものすごく遅い開発用モード

マルチコアなCPUやブラウザを絞り込むことで大きく時間は改善しますが、10秒以上かかることはめずらしくありません。
かといって開発用のモードだと遅いばかりか、実行に専用のブラウザを起動させるわけですが、そうすると各種便利なプラグインが使えません。複数のブラウザでのチェックも無理です。


2.0では開発用のモードが変わるようになりました。
具体的には通常のブラウザにプラグインを入れる形で利用します。

IEではプラグインのダウンロード先がアクセス不可能なURLですので、Firefox等でソースを開いてIEのURLらしきものを探してそこへアクセスしてダウンロードする必要があります。かなりお粗末ですね。IEプラグインのダウンロードが出来ないなんて。


まず、開発用のモードを起動するとSwingで作られた管理用のウインドウが開きます。1.7までのSWTで作られた独自ブラウザと違いここは瞬時に起動します。

ここから既定のブラウザを起動するか、クリップボードに開発用のURLを入れるかを選択することになります。Java SE 6ではURLを指定してブラウザ起動が出来ますのでそれを使っているのでしょう。

これでブラウザで特定のURLを開けば完成です。引数を削って通常のURLのほうをいれた場合、ソースコードの変更に追従していないのがわかります。


実行速度的にも大幅に改善されます。手元でいろいろと動かしてみましたがIEFirefoxともに万全の速度が出ているようです。


ただし、コストがないわけではありません。CPUの使用率を見ると通常のURLにアクセスした場合とくらべておおよそ4倍ほどCPUパワーを食っています。3GHzのCore2で1コア換算で60%〜70%くらいくっています。通常のURLだと15%程度です。

このことから1.6GHz程度のマシンだと速度低下が見られる可能性はあります。それでも1.7の時代のSWTによる独自ブラウザに比べたらはるかに快適です。CPUの使用率から見ても1.7から2.0で実行速度は3倍程度の高速化はしているようです。



NetBeansプラグインは2.0対応しているのでそのままでOKです。1.7まではHostedMode、2.0は自動的にDevModeを起動できます。ただし、1.7でプロジェクト作成している場合、2.0へ移行する場合プロジェクトのライブラリを差し替える必要があります。NetBeansへのライブラリの登録は自動的にされるようですが。