繁体   English   中英

如何找到导致内存泄漏的类?

[英]how to find the class causing memory leak?

我们在堆大小为 512M 的 IBM J9 VM 上运行一个 weblogic 服务器。

今天,服务器因 OutOfMemory 错误而失败。

我用 Eclipse Memory Analyzer 打开了堆转储文件 xxx.phd(并且安装了 IBM DTFJ 插件以支持 .phd 文件)。

MAT 给我一份泄漏嫌疑人报告,如下所示:

One instance of "java.lang.Object[]" loaded by "<system class loader>" occupies 402,572,608 (74.86%) bytes. The memory is accumulated in one instance of "java.lang.String[][]" loaded by "<system class loader>".

我怎样才能找到创建这个大数组的类?

还是那些仍在使用这个大数组的类?

或任何帮助我识别大阵列的提示?

最好的办法是使用分析器来查明内存泄漏的位置,因为许多不同的位置会耗尽 JVM 的内存并导致 OutOfMemory 异常。 只有检查内存转储才会带你走这么远。

暂无
暂无

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

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