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