首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆转储分析-查找OutOfMemory异常的根本原因

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

Stack Overflow用户
提问于 2016-10-12 06:19:39
回答 1查看 1.4K关注 0票数 1

我正在运行一个应用程序,它的最大堆大小为4g,-Xms4096m -Xmx4096m -Xmn1024m的GC配置为-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50Dsun.rmi.dgc.server.gcInterval=43200000 -Dsun.rmi.dgc.client.gcInterval=43200000的GC间隔。

突然,我的应用程序从内存异常中堆了出来,我在同一场合使用了线程转储和堆转储。在分析线程转储时,线程会因为为hashMap和arrayList创建一些值而陷入困境。ByteArrayOutStream在其中一个线程中创建了锁。

在分析eclipse内存分析器工具中的堆转储时,它清楚地指出bytearray对象已经占用了将近1G的堆。从GCViewer中可以看出,它有一个以秒为单位的峰值。我不知道为什么突然拜特数组对象使用了1G的空间。有人能帮我缩小罪魁祸首吗。

-应用服务器- Weblogic 12c

EN

回答 1

Stack Overflow用户

发布于 2016-10-12 07:57:44

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

使用MAT的GC根特性的最短路径来查看哪些引用保存在该字节数组上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39991714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档