我有一个基于Mojarra(JSF 2)的Web应用程序。该应用程序部署在WebSphere 7上。我的应用程序的会话使用率非常高。我使用视图范围的bean,有些页面相当大。我的web xml配置为在会话中保留5个视图。
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>5</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>5</param-value>
</context-param>
我没有明确地向会话添加任何内容。我的应用程序中的一些会话仍然高达60 MB。
当我进行hepdump分析时,它显示会话hashmap占用了所有内存。有没有办法确定会话存储中究竟有什么?
E.g。保留堆com.ibm.ws.session.store.memory.MemorySession @ 0x700000057890108对于/ xxx / yyy的内存存储xxx是66209288。
答案 0 :(得分:1)
如果使用eclipse-memory-analyzer分析堆转储,您应该能够深入查看com.ibm.ws.session.store.memory.MemorySession
以查找罪魁祸首,如本博文中所述:Richfaces Sessions Eating Memory – Analysis of a Memory Leak