1


Richfaces で JBOSS Seam を使用してアプリケーションを作成します。残念ながら、特に table に約 100 行 (またはそれ以上) を表示したい場合、一部のページが非常に長く読み込まれます。
データベースからの応答を取得するのに約 2453 ミリ秒かかるため、非常に良好です。ただし、フェーズ RENDER_RESPONSE には約 23750 ミリ秒かかるため、許容できません。私が返すオブジェクトには EAGER 接続がありません。

誰かが私を助けてくれるか、問題を見つけるために他に何ができるかを教えてくれることを願っています.

こんにちは、フリタ PS。ここに私のアプリケーションからのログがあります: 09:49:52,125 INFO [[/my_aplication]] BEFORE - INVOKE_APPLICATION 5 - / my_aplication/Report.seam
09:49:54,578 INFO [Report] End generated report: 2453
09:49:54,578 INFO [[/my_aplication]] AFTER - INVOKE_APPLICATION 5 - / my_aplication/Report.seam
09:49:54,578 INFO [[/my_aplication]] BEFORE - RENDER_RESPONSE 6 - / my_aplication/Report.seam
09:49:54,687 INFO [レポート] getResultList(): 1285314594687
09:49:54,687 INFO [レポート] getResultList(): 1285314594687
09:49:54,687 INFO [レポート] getResultList(): 1285314594687
09:49:54,687 INFO [レポート] getResultList(): 5:
965314 :54,687 INFO [レポート] getResultList(): 1285314594687
09:49:54,718 INFO [レポート] getResultList(): 1285314594718
09:50:18,437 INFO [レポート] getResultList(): 1285314618437
09:50:18,437 INFO [レポート] getResultList(): 1285314618437
[[[ /my_aplication]] AFTER - RENDER_RESPONSE 6 - / my_aplication/Report.seam
09:50:18,890 INFO [TimingFilter]

09:50:18,890 INFO [TimingFilter] 合計: 18258ms dla: /my_aplication/ Report.seam

4

3 に答える 3

1

ログに次の行が表示されます。

getResultList(): 1285314594687

...かなり繰り返しました。この呼び出しは何をしますか? 他の場所で初期化されたリストを返すだけですか? それとも、データベースを呼び出していますか? 呼び出しになんらかのロジックが含まれている場合、それが速度低下の原因である可能性があります。

于 2010-09-24T19:19:52.170 に答える
1

Dan Allen (Seam in Action の著者)によって書かれたJSF/Seam/Richfacesアプリケーションを高速化する方法に関するこの非常に優れた投稿を読むことをお勧めします。

于 2010-09-27T10:45:02.887 に答える
0

関連するエンティティを遅延読み込みしているため、それが発生すると確信しています。Seam には Open Session in View パターン (LazyLoadingException を回避する) のサポートが組み込まれているため、関連付けられた遅延エンティティごとに、Hibernate はデータベースにヒットします getResultList をオーバーライド (またはカスタム メソッドを作成)し、単一のSQL クエリ

于 2010-09-25T03:10:02.427 に答える