JSF与ajax请求的性能问题

时间:2013-11-12 08:20:36

标签: java jsf jsf-2 jboss

我试图在JBoss上运行的Web应用程序中找到瓶颈。

我有一个模块,其中包含从一个字段移动到另一个字段时使用Ajax进行数据服务器端验证的表单(这些验证时间低于1毫秒)。这些模块用于两个独立的Web应用程序:

  • 一个在Apache Tomcat Application Server上运行,每个都在 验证大约需要200-400毫秒;
  • 第二个在JBoss 7.1.1上运行,每次验证都需要进行验证 3-5秒这里的问题是我拥有与Tomcat上使用的模块完全相同的模块,并且5秒延迟实际上不是一个选项。

我已经在任何地方测量了时间,但是在JBoss上运行的应用程序中找不到任何瓶颈。

所以我使用JProfiler和线程转储来尝试找到问题。这是结果的屏幕截图。

对我来说,它看起来像是jsf / richfaces中的一个问题,但我不确定具体原因以及如何解决这个问题。

我正在使用:

  • jboss 7.1.1,使用jsf-impl-2.1.19-redhat-1
  • 修补
  • Richfaces 4.2.3.Final
  • 的JBoss-JSF的api_2.1_spec-2.1.19.Final-红帽-1

我尝试的是:使用最新的richfaces版本,将jsf的viewstate更改为服务器端,启用部分状态保存。

这是JProfiler屏幕截图:

JProfiler screenshot

对我来说,似乎这里的性能问题是javax.faces.view.facelets.ComponentHandler.applyNextHeader

我的想法已经用完了,任何点击都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

检查您的JSF PROJECT_STAGE是否正在开发。如果是这样,请尝试将其更改为生产。

您可以从<context-param>中删除名称为javax.faces.PROJECT_STAGE的{​​{1}},或将其值设置为web.xml而不是Production。< / p>