如何分析 Java/Seam Web 应用程序中的会话内存使用情况?
Posted
技术标签:
【中文标题】如何分析 Java/Seam Web 应用程序中的会话内存使用情况?【英文标题】:How to profile session memory usage in Java/Seam web application? 【发布时间】:2009-08-01 21:25:15 【问题描述】:是否有任何方法/工具来分析 Java Web 应用程序中每个会话的内存使用情况?
更具体地说,我正在使用 Seam,并且我有一些特定于用户或用户当前会话的对象,因此它们被设置为存储在用户的会话中。
前段时间,我的应用程序在访问一定数量的用户时会耗尽内存,因此我将各种内容移出会话并进行分析,直到内存耗尽。然而,内存测量是在 JVM 级别。我真的很想要一种方法来监控会话级别的内存使用情况,不包括任何非会话内存使用情况。
很高兴拥有:
http 会话的总内存使用量(我可以将其与整个应用程序的内存使用量进行比较) 每个会话的内存使用情况,甚至是平均值。【问题讨论】:
【参考方案1】:看看http://messadmin.sourceforge.net/。
【讨论】:
【参考方案2】:我经常使用Eclipse Mat 来诊断类似问题。如果您有大型会话,会话管理器会显示在“Dominator Tree”报告中。您可以轻松区分会话和应用其他部分的总内存使用情况。
您可以深入到各个会话并查看每个会话使用了多少内存。您还可以打开每个单独的会话并检查会话中的每个对象。
查看 MAT 提供的其他报告也是一个好主意。有时结果令人惊讶 - 例如,我们遇到了内存使用问题,结果证明是 JRE 类加载器问题。
【讨论】:
以上是关于如何分析 Java/Seam Web 应用程序中的会话内存使用情况?的主要内容,如果未能解决你的问题,请参考以下文章