JSF绑定会导致内存泄漏并导致HTTP会话中的数千个UI组件

我们发现系统经常内存不足,运行Full GC并没有帮助回收内存。然后,我们进行堆转储并分析内容。

JSF实现名称/版本Mojarra 2.1.28-jbossorg-2 服务器名称/版本:JBoss EAP 6.3

我们发现某些HTTP会话持有超过2GB的内存。以下链接中附带了来自MAT的dominator_tree的屏幕转储

https://drive.google.com/file/d/1zX1xHzpXBacrDuSNrS2Dp1kVUDm00uku/view?usp=sharing

它表明有许多org.primefaces.component.tabview.TabView组件(其中约360个),每个组件都引用5M到9M的内存,并且引用系统中的一组特定的UI!

我在primefaces论坛上提出了一个问题,建议该问题可能与JSF绑定有关。

我检查了页面的来源,其中包含:

    <f:actionListener binding="#{CourseInfoManagedBean.initBatchUpload()}"/>

其中CourseInfoManagedBean是@ViewScoped bean。

会导致内存泄漏吗?

此外,为什么这些org.primefaces.component.tabview.TabView UI组件是直接在org.apache.catalina.session.StandardSession下而不是在com.sun.faces.util.LRUMap下创建的?

maochanggeng 回答:JSF绑定会导致内存泄漏并导致HTTP会话中的数千个UI组件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3148048.html

大家都在问