如何发现哪个Jar或包创建对象

时间:2012-11-29 11:54:47

标签: java tomcat object memory

我的问题似乎很简单,但我还没有找到解决方案。

我需要知道Tomcat中部署的软件包如何占用内存。

我尝试了一些像VisualVM和JConsole这样的工具,但我无法发现我部署的包中有哪些创建了对象。例如,我可以看到有很多java.lang.String个对象,但我需要知道它们是从哪个包/ JAR创建的。

THX用于编辑omg ... so prooooo

2 个答案:

答案 0 :(得分:0)

您可以尝试使用对象查询语言(OQL)来查询堆。也许这会有助于你的目的。

您可以参考此链接,看看您是否得到了所需。 Object Query Language in VisualVM

答案 1 :(得分:0)

您可以尝试使用MAT(Memory Analyzer Tool) 使用此工具,您可以检查使用VisualVM进行的堆转换...例如,对于堆中的每个对象,您可以查看哪些对象具有对此对象的引用,从而防止其他对象被垃圾回收