【问题标题】:Memory overhead in JSF render response- ajax requestJSF 渲染响应中的内存开销 - ajax 请求
【发布时间】:2014-04-06 16:06:40
【问题描述】:

我正在使用 JSF 2.0、primefaces 3.3 和 javax.faces-2.1.4.jar。我面临性能问题,特别是渲染响应阶段的内存开销。即使是signle ajax请求也会消耗大量内存。

我在视图树中维护了大约 3000 个组件(面板、选项卡、表格...等),并且我试图只处理和渲染一个只有一个文本字段的面板。但它会消耗更多内存(大约 20MB)用于渲染。为什么会发生这种 Starge 行为?

任何人都可以建议克服这个问题。

提前致谢!!!

【问题讨论】:

  • 你必须更具体。众所周知,JSF 实现和版本是相关的,例如 Mojarra 的某些特定版本可能存在一些影响性能的错误。
  • 我目前正在使用“javax.faces-2.1.4.jar”。会不会导致性能问题。
  • 这太旧了,已知某些 Mojarra 版本存在会降低大型组件树性能的错误。有关Blog oio de 的详细信息,请参阅本文。使用最新的或尝试切换到Apache MyFaces 以获得最佳性能。详情请看这篇文章Understading JSF 2.0 Performance Part 3。我希望它有所帮助。

标签: java jsf-2 primefaces jboss facelets


【解决方案1】:

如果您还没有使用它们,您可以使用部分提交和部分更新;)
在 ajax 请求中处理您真正需要处理的内容,然后通过 ajax 响应更新您真正需要更新的内容。

【讨论】:

  • 我以同样的方式实现了:)。我希望整个视图树都得到了一些处理。我想避免那个。
【解决方案2】:

Partial Request 完成 JSF 视图树遍历期间的事件发生。

解决我的问题的解决方案是减少视图中的组件数量(使用有限的组件创建多个视图),将对话框添加到相应的视图(动态添加),从视图树中删除不需要的选项卡源/组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2012-01-17
    • 1970-01-01
    • 2022-08-19
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多