performance - JSF 性能调优

标签 performance jsf primefaces

我将 Mojara 2.0.3 与 PrimeFaces 2.2 一起使用。

我已经阅读了这个主题的很多帖子,并找到了一些不错的建议(例如不要在 getter 中使用 db 调用等)并使用它们,但我们的应用程序仍然需要大约 3 秒来呈现响应。

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

例如:
安装在
<p:outputPanel styleClass="myClass">...some code...</p:outputPanel>
使用这个

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

我们有数百个组件和数千个 DOM 元素的巨大 View ,我可以在渲染阶段成为障碍。

编辑:

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

最佳答案

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

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

JSF 生命周期的编码和解码短语在组件标记和普通 HTML 之间进行转换。仅当您使用的 Component 可以避免循环遍历表格并填充行(例如)而不是像 <h:outputText> 这样的东西时,这对您来说才值得。与 <p> 相比,它不使用 ajax 或绑定(bind)到支持 bean html元素。

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

关于performance - JSF 性能调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015764/

相关文章:

xml - Windows Phone 7 - 加载一个大的 xml 文件

c# - Entity Framework 初始化很慢——我该怎么做才能更快地引导它?

jsf - ICEfaces SelectOneMenu ValueChangeListener 不工作

ajax - 如何找出要进行Ajax更新/渲染的组件的客户端ID?找不到从“bar”引用的表达式为“foo”的组件

java - 在选择项中格式化日期

Android TListBox 滚动不流畅

performance - Clojure 性能,如何将提示键入 r/map

hibernate - "could not initialize proxy - no session"有可用的开放 session

object - Primefaces 自动完成展示选择了错误的国家/地区对象

java - 如何从 PrimeFaces 上传文件的 byte[] 获取 KeyStore