码迷,mamicode.com
首页 > 编程语言 > 详细

第二章:Java堆内存溢出

时间:2019-03-29 01:12:41      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:dump   str   none   memory   main   line   overflow   1.7   type   

  • Java堆溢出
可以通过不停的创建对象来造成堆内存溢出
public static void main(String[] args) {
List list = new ArrayList<>();
while(true) {
list.add(new ObjectBIg())
}
}
 
使用-XX:+HeapDumpOnOutOfMemoryError可以在虚拟机在出现内存溢出异常时Dump出当前的内存堆转存储快照以便后续进行分析。
对Dump快照进行分析,需要区分出到底是内存泄漏Memory Leak还是内存异常Memory Overflow。
如果是内存泄漏,进一步通过工具对GC Root的引用链进行分析。
如果不是内存泄漏,就是内存中的对象确实都还必须存活,那就应该修改虚拟机参数Xmx Xms,同时判断是否可以通过调大物理内存的方式解决。然后从代码角度检测是否存在某些对象生命周期过长、持有状态时间过长的情况,尝试减少程序运行期的消耗。

第二章:Java堆内存溢出

标签:dump   str   none   memory   main   line   overflow   1.7   type   

原文地址:https://www.cnblogs.com/use-D/p/10618767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!