3

Vaadin 用の単純な「hello world」アプリケーションを作成してサーバーにデプロイし、ブラウザにアプリケーション URL を入力すると、アプリケーションが表示されるまで 5 ~ 10 秒ほど待たなければなりません。次の実行は高速ですが、クラスを再デプロイまたはホットスワップすると、再び待機する必要があります。データベースの起動時間、サーバーの起動時間などに加算すると、時間がかかりすぎます。

この Vaadin の起動の遅さを解消する方法はありますか? すべてのコードを単体テストできるわけではなく、一部をテストする唯一の方法は、手動で変更 + 実行 + テストすることです。

同様の問題が GWT デバッグ モードにも存在します。Vaadin は GWT をベースにしているため、この遅さの原因は Vaadin ではなく GWT にあるのではないでしょうか?

私の環境: IntelliJ 9 + Tomcat 6 + Windows 7 64 ビット + 高速な Core 2 Duo

4

3 に答える 3

2

Vaadin は、この時間のほとんどを com.vaadin.terminal.gwt.server.AbstractApplicationServlet#serveStaticResourcesInVAADIN (実際には vaadin 自体ではなく、サーブレット コンテナー) で過ごします。

vaadin.jar が大きすぎるためだと思います。

したがって、VAADIN dir を vaadin.jar から webRoot に抽出するだけで、アプリケーションの起動時間が短縮されます。

他の非常に優れた(ただし有料の)ソリューションはhttp://zeroturnaround.com/jrebelです

于 2011-11-27T12:21:20.253 に答える
2

Vaadin アプリケーションの再起動時に速度が遅い場合: Application.init() メソッドが過度に負荷をかけていないことを確認します (データベース接続、大量のデータのロードなど)。URL パラメーター ?restartApplication を使用して、Vaadin でこのセッションを強制的に再起動できます。

アプリケーションを再起動しなくてもホット デプロイが遅い場合 (UI の状態が維持される場合): これは、Vaadin のクライアント側 (GWT) 部分と関係があります。キャッシングがどういうわけか完全に無視されている可能性があります。ウィジェットセットの最適化が役立つ場合があります。

于 2010-10-20T15:39:42.617 に答える
1

この問題は、すべての Java クラスが初めてロードされることが原因で発生します。その後の呼び出しでは、キャッシュされたクラスを使用できます。

ただし、5 ~ 10 秒は、私見ですが、それほど悪くはありません。

于 2010-10-11T10:01:30.473 に答える