美文网首页
OutOfMemory解决办法

OutOfMemory解决办法

作者: momdiemg | 来源:发表于2019-11-11 18:12 被阅读0次

首先建一个堆溢出的类OOm.java

Map map=new HashMap();
for(int i=0;i<128;i++){
  map.put(i,byte[1024*1024]);
}

1.使用-XX:+HeapDumpOnOutOfMemryError参数,拿到堆快照,以供分析

java -Xmx128m  -XX:+HeapDumpOnOutOfMemoryError OOm

2.使用visualvm.exe分析快照
可以看出 byte[]占最大 99%,由此可以判断谁除了问题


内存.jpg

Heap Dump分析

Metaspace/PermGen
   瞄准class对象
HeapSpace
  瞄准占空间的最大对象
Path to GC Roots
  顺着看代码

1使用Mat工具查看快照
一般使用两个功能
首先点击Leak Suspects: includes leak suspects and a system overview,查看潜在的可能
会给你提示哪里有报错。


内存.jpg

其次,点击Histogram: Lists number of instances per class,列出堆中的所有对象。根绝这个潜在的可能对象取搜索出来查看


内存2.jpg

相关文章

网友评论

      本文标题:OutOfMemory解决办法

      本文链接:https://www.haomeiwen.com/subject/hkbtictx.html