Java を使用して GWT フレームワークで AppEngine アプリケーションを開発しています。バックエンド(保管目的)としてオブジェクト化します。アプリケーションには約 30 のモジュールがあります。Web アプリケーションでページを開くたびに、表示が遅すぎます。アプリケーションをより速くしたい。
この厄介な問題で私を助けてください。
Java を使用して GWT フレームワークで AppEngine アプリケーションを開発しています。バックエンド(保管目的)としてオブジェクト化します。アプリケーションには約 30 のモジュールがあります。Web アプリケーションでページを開くたびに、表示が遅すぎます。アプリケーションをより速くしたい。
この厄介な問題で私を助けてください。
すでに上で述べたように、一般的にこの手順を実行します。
しかし、AppEngine 向けの開発には、AppEngine のことを考える必要があります。また、AppEngine ドキュメント: https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Request
主なもの: AppEngine は、Tomcat、Jboss などのような Java アプリケーション サーバーではありません。AppEngine は、Java を実行する完全な独自の環境です (これは、遅くとも AppEngine SDK をダウンロードしたときに気付くはずです)。
次に、アカウントを請求先アカウントに変更し、プリロードされたアプリの支払いという 2 つのオプションが表示されます。
または、サードパーティのライブラリを忘れて、オブジェクト化する必要があるために自分で書いてください??? appengine データストア API は非常に優れています。API を直接使用すると、AppEngine 向けにアプリをより適切に設計する方法を考える際にも役立ちます。
クライアント側でも、セッションまたはセッション間でデータをキャッシュすることを検討する必要があります。最も一般的なリクエストの統計を作成し、サーバー キャッシングも実行できます。
アプリケーションがすべてのコードをブラウザにロードするため、遅い理由は確かです。
HTTP ウォッチツールを使用して、これが正しいかどうかを確認します。2MB の nocache.js ファイルの場合、ロードには通常 2 分かかります。
アプリケーションで MVP フレームワークを使用していますか? そうでない場合、これが問題の 1 つになる可能性があります。Objectify によってアプリケーションが遅くなることはありません。アプリケーションを構築した方法によるものだと思います。
また、GWT 2.5 の使用を試みると、クロージャ コンパイラを利用できるため、アプリケーションのフットプリントを約 20% (おそらく) 削減できます。さらに、Tomcat でデプロイしている場合は、gzip 圧縮を有効にしてみてください。
アプリケーションの「遅さ」は、アプリケーションの一部だけに起因するものではなく、アプリケーションのレイヤー全体に広がる可能性があります (私の経験に基づく)
お役に立てれば。
Appstatsを使用してアプリケーションをプロファイリングし、どの RPC がアプリの速度を低下させているかを特定します。
これを行うと、たとえばmemcacheを使用して、作成している RPC の数を減らす方法を見つけることができるはずです。可能な限り非同期APIを使用することもできます。