关于内存溢出异常的查看以及解决办法

         内存溢出,又称为OOM(OutOfMemoryError),处理内存溢出,首先要查看是否是由于内存泄露(Memory Leak)造成的内存溢出(Memory  Overflow),可以使用内存影响分析工具(如 Eclipse Memory Analyzer)对dump出来的堆存储快照进行分析,来确认内存中的对象是否是必要的.
如果是内存泄露,可以进一步通过工具查看泄漏对象到DC Roots的引用链,找到泄漏对象是怎样与DC Roots相关联导致垃圾收集器无法自动回收他们的,就可以比较准确的定位出泄露代码的位置.
如果不是内存泄露,就是说内存中的所有对象都必须活着,就检查虚拟机的堆参数(-Xmx 与 -Xms),与机器物理内存对比看是否还可以调大,从代码上查看是否某些对象生命周期过长或持有状态时间过长的情况,尝试减少程序运行期的内存消耗.

你可能感兴趣的:(技术分享)