java堆溢出
Posted 西北野狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java堆溢出相关的知识,希望对你有一定的参考价值。
java堆是用来存储对象实例的;
只要不断创建对象,GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当对象数量达到最大堆的容量限制的时候就会产生内存溢出异常。
异常对战信息为OutOfMemoryError,进一步提示:java heap space。
如何解决?
内存映射工具,eclipse中的Memory Analyzer来对Dump出来的堆转储快照进行分析。
1、内存泄露:通过工具查看泄露对想到Gc Root的引用链。
2、不存在内存泄露:内存中对象必须存活,检查虚拟机的堆参数(-Xmx 与 -Xms),与机器物理内存对比看是否还可以调大,从代码上检查是否存在某些对象生命周期过长,持有状态时间过长的情况,尝试减少程序运行期的内存消耗
以上是关于java堆溢出的主要内容,如果未能解决你的问题,请参考以下文章
Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread)