RESTORE_VIEW和RENDER_RESPONSE花了太长时间

时间:2014-03-28 10:16:55

标签: jsf-2 primefaces

我正在研究JSF 2应用程序(使用Mojarra 2.1.10的primefaces 3.4.1)。 视图非常大,因此应用程序响应不是很快,但它仍然可以接受。 当用户在表单中显示新数据时,这不是问题。但是当他编辑数据时,它会更烦人。

在离开某些字段时,我们执行了一些简单的逻辑(使用ajax):

<p:ajax 
        event="blur" 
        process="@this" 
        listener="#{myBean.myMethod()}" 
        partialSubmit="true"
        update="another_component_id" />

正如预期的那样,当我使用chrome开发人员工具查看请求/响应的内容时,我可以看到只发送了文本字段,并且只发送了&#34;更新&#34;收到。
我希望它会非常快,但RESTORE_VIEW和RENDER_RESPONSE阶段每个大约需要3-4秒。
如果我删除partialSubmit并设置update =&#34; @ form&#34;,则会交换更多数据,但这两个阶段仍需要相同的时间。

查看此链接时: http://www.industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overhead/ 我读过: &#34;页面性能很大程度上与视图树的大小有关,无论它是否由于处于非渲染分支而从渲染中排除了大部分。&#34;。这似乎证实了我的观察结果,但我还没有找到很多相关信息。

我说错了吗?即使提交/更新页面的一部分,RESTORE_VIEW和RENDER_RESPONSE仍然很长,这是正常的吗?

提前致谢。

1 个答案:

答案 0 :(得分:-1)

大多数情况下,性能问题来自数据库和业务层,所以首先要看一下这部分。现在,JSF 1.2与新实现相比已经过时了,从那时起发生了很多事情。像Partial State Saving这样的JSF 2的重大改进解决了大部分性能瓶颈。

请看一下这篇文章,它将澄清您对绩效的问题Understanding JSF 2.0 Performance – Part 3 on JSFCentral。代码在Web Framework Performance Comparison GitHub Repo上,因此您可以查看代码并亲自查看问题所在。我个人推荐Apache MyFaces的优点。与面向动作的Web框架(如Spring MVC等)相比,MyFaces确实非常出色,毫无疑问。

如果您希望获得最佳性能,MyFaces 2.2中捆绑了一个视图池实现,您可以尝试,但第三方库需要与之兼容。