1

我们的应用程序在各个部分都存在渲染时间问题。我们已经能够在 JSF restoreView 阶段(生命周期)中使用分析器(YourKit Java Profiler)查明性能问题。由于我们在某些页面中使用了很多组件,因此树的渲染肯定是问题的根源。关于 stackoverflow 的一些问题看起来很像我们正在处理的问题。此外,我们可以看到开发和生产的速度同样缓慢。

一些规格:

  • 我的面孔 2.1.7
  • javax.el 2.1.0

探查器(CTRL+滚动查看详细信息): 在此处输入图像描述

我们正在努力寻找解决方案。到目前为止,我们提出了这些:

  • 使用更少的组合/组件(这不是很好,因为我们喜欢制作通用组件)。
  • 我们也可以进入 JSF 无状态模式。
  • 找到 JSF 的实际问题(IN DEEP)。
  • 最近,我们发现一些 JUEL 库(表达式语言)可以大大增加渲染时间

我一直在处理让 JUEL 与 Spring 3(使用 OSGI)一起工作。这是规范: JUEL 2.1.3.1 捆绑包(注意:此捆绑包使用的 javax.el 版本与我在应用程序中使用的版本不同,这会导致冲突吗?)

我找到了另一个仅执行Juel 实现和更新版本的maven 存储库。

更新: 找到了 javax.el 冲突的解决方案,因为 juel-api 中存在很多问题(因为它是导出他自己的 javax.el)我用那行Fragment-Host: javax.el修改了清单以消除它.

是否有配置/设置来实现更好的性能?或者,如何使用 MyFaces 和 Spring 实际配置 JUEL?

4

1 回答 1

3

我会说这个问题是由 Spring Web Flow 引起的。我记得这个问题SWF-1540。首先检查您是否使用了正确的版本(2.4.0.M1 或更高版本)。请注意,我个人没有测试过该配置是否存在性能问题,但我可以说 MyFaces 2.1.7 和更高版本没有任何问题。众所周知,某些 EL 版本存在性能问题,因此请尝试使用 juel 或 apache EL(jasper-el,与 Tomcat 捆绑在一起)。

作为个人意见,请注意 Spring 代理,众所周知,在某些情况下,当页面非常大且复杂时,代理会对性能产生重大影响。建议的解决方案是使用Apache OpenWebbeans,这是一个非常快速的 CDI 实现,针对有大量 bean 互连的情况进行了优化。

您也可以查看这篇文章“了解 JSF 2 和 Wicket:性能比较”以获取有关 MyFaces 性能的提示。

您必须自己尝试适合您的情况的方法,但我希望通过这些建议,您可以更好地专注于搜索。

于 2013-04-08T21:20:00.207 回答