1

私たちのアプリケーションは、さまざまな部分でレンダリング時間に問題があります。JSF の restoreView フェーズ (ライフサイクル) 内で、プロファイラー (YourKit Java Profiler) を使用してパフォーマンスの問題を特定することができました。一部のページでは多くのコンポーネントを使用しているため、ツリーのレンダリングが問題の原因であるに違いありません。stackoverflow に関するいくつかの質問は、私たちが扱っているものとほとんど同じように見えます。また、開発と本番で同じ遅い速度が見られます。

いくつかの仕様:

  • マイフェイス 2.1.7
  • javax.el 2.1.0

プロファイラー (CTRL + スクロールして詳細を表示): ここに画像の説明を入力

私たちは解決策を見つけようとしています。これまでのところ、私たちはそれらを思いつきました:

  • より少ない構成/コンポーネントを使用します (一般的なコンポーネントを作成するのが好きだったので、これはそれほど素晴らしいことではありません)。
  • JSF ステートレス モードに移行することもできます。
  • JSF (IN DEEP) の実際の問題を見つけます。
  • 最近、一部の JUEL ライブラリ (式言語) がレンダリング時間を大幅に増加させる可能性があることがわかりました。

私はJUELをSpring 3(OSGIを使用)で動作させることに取り組んできました。仕様は次のとおりです: JUEL 2.1.3.1 バンドル(注: このバンドルは、私のアプリケーションで使用しているバージョンとは異なるバージョンの javax.el を使用しているため、クラッシュが発生しますか?)

Juel 実装のみを行う別の Maven リポジトリと、より新しいバージョンを見つけました。

更新: juel-api に多くの問題があったため、javax.el 衝突の解決策を見つけました (それは、彼自身の javax.el をエクスポートしているためです)。マニフェストをその行Fragment-Host: javax.elで変更して、それを排除しました。 .

パフォーマンスを向上させるための構成/セットアップはありますか? または、MyFaces と Spring で JUEL を実際に構成するにはどうすればよいでしょうか?

4

1 に答える 1

3

この問題は、Spring Web Flow が原因であると言えます。この問題SWF-1540を覚えています。最初に、正しいバージョン (2.4.0.M1 以降) を使用しているかどうかを確認します。個人的には、その構成にパフォーマンスの問題があるかどうかはテストしていませんが、MyFaces 2.1.7 の上位バージョンには問題がないと言えます。一部の EL バージョンにはパフォーマンスの問題があることが知られているため、juel または apache EL (Tomcat にバンドルされている jasper-el) で試してください。

個人的な意見として、Spring プロキシに注意してください。ページが非常に大きく複雑な場合、プロキシがパフォーマンスに大きな影響を与えることが知られています。推奨される解決策はApache OpenWebbeansを使用することです。これは非常に高速な CDI 実装であり、多数の Bean が相互接続されている場合に最適化されています。

MyFaces のパフォーマンスに関するヒントについては、この記事「Understanding JSF 2 and Wicket: Performance Comparison」も参照してください。

自分の場合に何がうまくいくかを自分で試す必要がありますが、これらのアドバイスにより、検索に集中できることを願っています.

于 2013-04-08T21:20:00.207 に答える