4

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 のスクリーンショットは次のとおりです。

JProfiler スクリーンショット

私にとっては、ここでのパフォーマンスの問題は javax.faces.view.facelets.ComponentHandler.applyNextHeader にあるようです

私はアイデアを使い果たしています。どんなヒットでも大歓迎です。

4

1 に答える 1

2

PROJECT_STAGE開発中の場合は、JSF を確認してください。その場合は、本番環境に変更してみてください。

から の<context-param>名前を削除するか、その値をの代わりに に設定することで、これを行うことができます。javax.faces.PROJECT_STAGEweb.xmlProductionDevelopment

于 2014-06-18T10:22:13.307 に答える