我们在IBM J9 VM上运行weblogic服务器,堆大小为512M。
今天,服务器因OutOfMemory错误而失败。
我用Eclipse Memory Analyzer打开了堆转储文件xxx.phd(安装了IBM DTFJ pluign以支持.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>".
如何找到创建这个大数组的类?
还是那些仍在使用这个大数组的类?
或任何帮助我识别大阵列的提示?
答案 0 :(得分:2)
最好的办法是使用分析器精确定位内存链接的位置,因为许多不同的位置会耗尽JVM的内存并导致OutOfMemory异常。到目前为止,只检查内存转储。