1

JSF2.0は素晴らしいWebフレームワークです。Rails / DJango / Playはすべて、基本的に変数置換(基本的にJSP)のテンプレートを使用しますが、JSF2.0は、Tapestry、GWT、Wicketなどのコンポーネントベースのフレームワークに偏っています。

ただし、JSFは、ページの複雑さを伴う線形劣化パフォーマンスを備えています。それで、ここで魅力的な記事を読んだ後:http: //industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overheadいくつか質問がありました。

まず、著者は、JSFライフサイクルの時間の大部分はに費やされていると述べていますbuildView()。特定のアプリ、具体的にはMojarraで実行されているアプリでこれをどのようにプロファイリングしますか?

第二に、パフォーマンスのf:ajax execute=""助けを自由に利用するでしょうか?buildView()属性は、実行executeする必要のある作業量を削減しbuildView()ますか?

最後に、フルページナビゲーションで、f:ajax「現在のビューを復元している間は、次のコンポーネントのみを実行する」と言うことができるものはありますか?これは無意味ですか?

ありがとうございました!

4

1 に答える 1

0
  1. ですから、これをクロサギでプロファイリングするのは少し難しいことがわかりました。ただし、MyFacesは非常に簡単です...LifeCycleImplでプロファイラーをポイントするだけです。

  2. MyFacesでは、executeを適切に設定すると、パフォーマンスが大幅に向上します。私のマシンでは、buildView()ボイラープレートは約8msかかります。で処理されるすべてのコンポーネントについて、そのベースに追加される線形コス​​トがありますf:ajax execute=h:outputTextui:repeat囲まれて10,000を追加しましたui:fragment id="fragment"。追加fragmentすると、f:ajax execute=応答時間は8msから45msになりました。ここでのレッスンはf:ajax execute=、入力コンポーネントのみを実行し、コンポーネントのみを実行するように設定することf:ajax render=ですh:message

  3. OmniFacesキャッシュコンポーネントは基本的にこれを行いますが、範囲は少し広くなります。

私はまだ誰かがもっと科学的な答えでチャイムを鳴らすことができることを願っています:)

于 2012-07-13T20:14:46.780 に答える