【发布时间】:2013-03-27 04:20:46
【问题描述】:
我们的应用程序在各个部分都存在渲染时间问题。我们已经能够在 JSF restoreView 阶段(生命周期)中使用分析器(YourKit Java Profiler)查明性能问题。由于我们在某些页面中使用了很多组件,因此树的渲染肯定是问题的根源。 Some question on stackoverflow 看起来很像我们正在处理的事情。此外,我们可以看到开发和生产的速度同样缓慢。
一些规格:
- MyFaces 2.1.7
- javax.el 2.1.0
Profiler(CTRL+SCROLL 查看详情):
我们正在努力寻找解决方案。到目前为止,我们想出了这些:
- 使用更少的组合/组件(这不是很好,因为我们喜欢制作通用组件)。
- 我们也可以进入 JSF 无状态模式。
- 找到 JSF 的实际问题(IN DEEP)。
- 最近发现一些JUEL库(表达式语言)可以大大increase the rendering time。
我一直在处理让 JUEL 与 Spring 3(与 OSGI)一起工作的问题。这是规格: JUEL 2.1.3.1 bundle(注意:此捆绑包使用的 javax.el 版本与我在应用程序中使用的版本不同,这会导致冲突吗?)
我发现了另一个只做Juel Implementation and a more recent version的maven repo。
更新: 找到了 javax.el 冲突的解决方案,因为 juel-api 中存在很多问题(因为它是导出他自己的 javax.el)我用该行修改了清单 Fragment-Host: javax. el 消除它。
是否有实现更好性能的配置/设置? 或者,如何使用 MyFaces 和 Spring 实际配置 JUEL?
【问题讨论】:
-
您能否发布一个产生此问题的 JSF 页面/托管 bean 的基本示例?
-
您使用哪种 JSF 实现(Mojarra 或 Myfaces)?在响应缓慢期间 CPU 是否大量使用? JSF 是处于开发模式还是生产模式? (开发模式真的非常慢,因为它在请求期间完成了更多工作才能生成更好的消息)。
-
@Luiggi Mendoza :不幸的是,我无法在代码中“精确定位”它,因为它非常大。我会看看如何在较小的规模上重现它。
-
@Balazs Zsoldos:编辑了我的答案。将发布用于 restoreView 的 CPU 使用分析器输出(大约 50-70%)。
-
对不起。我之前有一些想法,但没有一个是这里的原因。
标签: performance spring jsf osgi spring-webflow