【发布时间】:2012-11-29 11:54:47
【问题描述】:
我的问题似乎很简单,但我还没有找到解决方案。
我需要知道 Tomcat 中部署的包是如何消耗内存的。
我尝试了一些工具,例如 VisualVM 和 JConsole,但我无法发现我部署的包中的哪个创建了对象。例如,我可以看到有很多 java.lang.String 对象,但我需要知道它们是从哪个包/JAR 创建的。
感谢编辑 omg...所以 prooooo
【问题讨论】:
我的问题似乎很简单,但我还没有找到解决方案。
我需要知道 Tomcat 中部署的包是如何消耗内存的。
我尝试了一些工具,例如 VisualVM 和 JConsole,但我无法发现我部署的包中的哪个创建了对象。例如,我可以看到有很多 java.lang.String 对象,但我需要知道它们是从哪个包/JAR 创建的。
感谢编辑 omg...所以 prooooo
【问题讨论】:
您可以尝试使用MAT(Memory Analyzer Tool) 使用此工具,您可以检查使用 VisualVM 获取的堆转储...对于堆中的每个对象,您可以查看哪些对象引用了该对象,从而哪些对象阻止其他对象被垃圾收集
【讨论】:
您可以尝试使用对象查询语言 (OQL) 来查询堆。也许这对你的目的有所帮助。
你可以参考这个链接,看看你是否得到了你需要的东西。 Object Query Language in VisualVM
【讨论】: