繁体   English   中英

Eclipse MAT 分析器:了解泄漏嫌疑报告

[英]Eclipse MAT Analyser: Understanding leak suspect report

我使用工具Eclipse MAT Analyzer并观察到 ​​LEAK 支持有一个问题,如下所述,

One instance of "hudson.model.Hudson" loaded by "org.eclipse.jetty.webapp.WebAppClassLoader @ 0x3c0001f48" occupies 2,129,624,192 (95.23%) bytes.

The memory is accumulated in one instance of "hudson.model.Hudson" loaded by "org.eclipse.jetty.webapp.WebAppClassLoader @ 0x3c0001f48".



Keywords
org.eclipse.jetty.webapp.WebAppClassLoader @ 0x3c0001f48
hudson.model.Hudson

这是什么意思? 造成这种情况的原因是什么?

更多信息 :

1)这个对象的浅层大小= 312,保留大小= 2000000000 我理解浅层大小意味着一个对象的大小,保留大小是2GB,那么这是否意味着6410256个对象是活着的?

2)它是詹金斯,我试图用工作数量分析詹金斯,那么我怎样才能确定这个对象在内存中被不必要地引用(或)有什么方法可以释放它?

谢谢,
哈利

如果不分析代码,就无法回答这意味着什么以及导致它的原因。 Eclipse MAT Analyzer 只能显示更精确的手动代码分析似乎值得的地方。

  1. X 的保留大小是当 X 被垃圾回收时 GC 将删除的对象的总大小。 这意味着它还包含仅通过 X 以某种方式引用的实例大小
  2. 要找出引用实例的位置和原因,您需要了解代码:
    • hudson.model.HudsonDominator Tree hudson.model.Hudson ,查看代码以了解使用实例的原因和方式。
    • 设置断点并在调试模式下启动应用程序以查看实例字段的当前值。 您还可以在构造函数中使用所谓的Tracepoints来获取控制台上的输出,而无需在每次创建实例时暂停应用程序。

暂无
暂无

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

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