JBoss で実行されている Web アプリケーションのボトルネックを見つけようとしています。
フィールドからフィールドに移動するときに、Ajaxを使用してサーバー側でデータの検証を行うフォームを含むモジュールがあります(これらの検証には1ミリ秒未満かかります)。モジュールは、2 つの別個の Web アプリケーションで使用されます。
- 1 つは Apache Tomcat Application Server で実行され、各検証には約 200 ~ 400 ミリ秒かかります。
- 2 つ目は JBoss 7.1.1 で実行され、各検証に約 3 ~ 5 秒かかります。ここでの問題は、Tomcat で使用されているモジュールとまったく同じモジュールを使用しており、5 秒の遅延は実際にはオプションではないことです。
可能な限り時間を測定しましたが、JBoss で実行されているアプリケーションにボトルネックは見つかりませんでした。
そこで、JProfiler とスレッド ダンプを使用して問題を見つけようとしました。これが結果のスクリーンショットです。
私には jsf/richfaces の問題のように見えますが、正確な理由とこれを修正するために何ができるかはわかりません。
私は使用しています:
- jsf-impl-2.1.19-redhat-1 でパッチを適用した jboss 7.1.1
- Richfaces 4.2.3.Final
- jboss-jsf-api_2.1_spec-2.1.19.Final-redhat-1
私が試したのは、最新のリッチフェイス バージョンを使用し、jsf のビューステートをサーバー側に変更して、部分的な状態の保存を有効にすることです。
JProfiler のスクリーンショットは次のとおりです。
私にとっては、ここでのパフォーマンスの問題は javax.faces.view.facelets.ComponentHandler.applyNextHeader にあるようです
私はアイデアを使い果たしています。どんなヒットでも大歓迎です。