java – 带有ajax请求的JSF性能问题

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

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

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

我已经在任何地方测量了时间,但是在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-redhat-1

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

这是JProfiler截图:

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

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

最佳答案 如果是开发,请检查您的JSF PROJECT_STAGE.如果是这样,请尝试将其更改为生产.

您可以通过删除< context-param>来实现.从web.xml获取名称为javax.faces.PROJECT_STAGE,或将其值设置为Production而不是Development.

点赞