繁体   English   中英

Java heapdump分析查找实例化对象的源

[英]Java heapdump analysis find source for the instantiated objects

我正在使用jvisualvm分析堆转储。 从报告中我可以看到类,实例数和大小。

我想知道的是 - 这些对象的源(实例化了这个类)。 对于给定的对象,如果我能够知道所有源类和每个类创建的实例数,我想可以很容易地识别出错误的候选者。

这有可能吗? 如果是这样,是否有比其他工具更好的工具来提供此类信息?

YourKit按大小和数量提供分配跟踪。 您可以搜索创建的特定类并查找热点。 评估版是免费的。 ;)

尝试:

http://dr-brenschede.de/bheapsampler有一个易于理解的摘要或http://www.eclipse.org/mat进行更详细的分析

这些工具可以满足您的需求

你试过了吗

jhat <yourdump>

假设您的作品具有以下形式:

私人Blah blah = new Blah();

对于每个实例,您都可以看到谁拥有对它的引用。 它还提供了强大的查询语言[OQL]。 请参阅示例: jhat OQL AND在where子句中

但是如果你在其他地方创建它并简单地将它传递给另一个类字段,你将无法从内存转储[使用任何工具]找到它,因为它只是一个快照。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM