Netbeans ベースのプロファイラーを使用して、JSF プロジェクトでいくつかのプロファイリング実験を試みていました。しかし、私は非常に驚くべき結果を見つけました。リクエストが処理されている間、 JSF のFacesServlet.service()
メソッドがほとんどの時間を費やしていることがわかりました。データベースからJSFページにコンテンツを提供していますが、それでも大きなタイムラグはメソッドのセルフタイムが高いことが原因であることがわかりました。service()
プロファイリング結果のスナップショットは次のとおりです。
なぜこれが起こっているのですか、このメソッド内で非常に高価なことが起こって、そのような高いセルフタイムを引き起こしているのは何ですか?
Tomcat 7.0.42 のプロダクション モードで Myfaces 2.1.12 を実行しています。
編集:
以下の彼の回答で@mkienenbが正しく指摘したように、上記のプロファイリングテスト中にorg.apache.myfaces
メソッドを除外したため、新しいプロファイリングテストを行い、新しい結果のスナップショットの下に投稿しています。
しかし、Myfaces/JSF メソッドのセルフ タイムが原因で、多くの時間オーバーヘッドが発生していることがわかります。