JSF性能调优

时间:2012-06-13 13:21:10

标签: performance jsf primefaces

我在PrimeFaces 2.2中使用Mojara 2.0.3。

我已经在本主题中阅读了很多帖子,并发现了一些非常好的建议(比如不要在getter中使用db调用等)并使用它们,但我们的应用程序仍然需要~3秒提交回复。

我测试了它,第6个生命周期(渲染阶段)是最大的资源消费者。我们主要使用内置或复合组件,我想知道用简单的html标签替换其中一些(主要用于没有任何功能的设计)是好还是坏。

例如: 绝缘     <p:outputPanel styleClass="myClass">...some code...</p:outputPanel>

使用此

<div class="myClass">...some code...</div>

我们拥有数百个组件和数千个DOM元素的巨大视图,我可以在渲染阶段成为阻止者。

修改

我删除了几乎所有&#34;无用的&#34;组件,我们经历了巨大的性能增长。响应时间和响应大小。平均响应时间从~3秒减少到~2.2秒。惊人... 所以结论是:少用,多得多:)

1 个答案:

答案 0 :(得分:1)

根据Core Java Server Faces的第1章,纯HTML(静态)在JSF标记的编码阶段之前传递。

如果您有一些不需要与Backing Bean进行通信的JSF标记,我怀疑您通过将静态数据限制在vanilla HTML中来享受小的性能提升。

JSF生命周期的编码和解码短语在Component mark-up和vanilla HTML之间进行转换。如果您使用的是一个Component,可以节省您在表上循环并填充行(例如)与不使用ajax或绑定到辅助bean的<h:outputText>之类的内容,那么这对您来说是值得的。 ,与<p> html元素相比。

简而言之,如果您不需要利用JSF充当Controller,请不要害怕在JSF文档中使用普通的旧HTML。