我们在 IBM J9 VM 上运行 weblogic 服务器,堆大小为 512M。
今天,服务器因 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 异常。到目前为止,仅检查内存转储就够了。
关于java - 如何找到导致内存泄漏的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363263/