是否有任何方法/工具来分析Java Web应用程序中的每会话内存使用情况?
更具体地说,我正在使用Seam,我有一些特定于用户或用户当前会话的对象,因此它们被设置为存储在用户的会话中。
前段时间我的应用程序在达到一定数量的用户时会耗尽内存,所以我将各种事情移出会话并进行分析,直到我将内存记录下来。但是,内存测量是在JVM级别。我真的很喜欢监视会话级别的内存使用情况,不包括任何非会话内存使用情况。
很高兴:
答案 0 :(得分:2)
答案 1 :(得分:1)
我经常使用Eclipse Mat来诊断类似的问题。如果您有大会话,会话管理器将显示在“Dominator Tree”报告中。您可以通过会话和应用程序的其他部分轻松区分总内存使用情况。
您可以深入查看各个会话,并查看每个会话使用了多少内存。您还可以打开每个单独的会话并检查会话中的每个对象。
查看MAT提供的其他报告也是一个好主意。有时结果令人惊讶 - 例如我们遇到内存使用问题,结果证明是JRE类加载器问题。