提问者:小点点

堆转储分析-查找OutOfMemory异常的根本原因


我正在运行一个应用程序,该应用程序具有4 gigs的maxmimum堆大小-Xms4096m-Xmx4096m-Xmn1024m,GC配置为-XX: UseConcMarkSweepGC-XX:CMSLaunatingCareancyFraction=50和Dsun.rmi.dgc.server.gcInterval=43200000-Dsun.rmi.dgc.client.gcInterval=43200000

突然,我的应用程序出现了堆内存溢出异常,我在同一场合进行了线程转储和堆转储。在分析线程转储时,由于为hashMap和arrayList创建了一些值,线程被卡住了。ByteArrayOutStream在其中一个线程中创建了锁。

在eclipse内存分析器工具中分析堆转储时,它清楚地表明bytearray对象已经占用了近1 GB的堆。从GCViewer来看,它在几分之一秒内出现了峰值。我不太清楚为什么字节数组对象突然使用了1 GB的空间。有人能帮我缩小罪魁祸首吗?

--应用服务器-Weblogic 12c


共1个答案

匿名用户

在eclipse内存分析器工具中分析堆转储时,它清楚地表明bytearray对象已经占用了近1 GB的堆。

使用最短路径GCMAT的根功能,以查看哪些引用保留在该字节数组上。