如何通过模拟案例解析Java内存溢出的原理及处理过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2104个文字,预计阅读时间需要9分钟。
在JVM虚拟机规范中,Java虚拟机运行时数据区域除了程序计数器外,还包括其他可能引发OutOfMemoryError的情况。使用Hotspot虚拟机时,其简单的堆栈内存模拟可能导致内存溢出。以下为快速定位问题的方法:
在JVM虚拟机规范中,Java虚拟机运行时数据区域除了程序计数器(Program Counter Register)外都有可能出现OutOfMemoryError的情况,使用Hotspot虚拟机简单的模拟堆栈内存溢出的场景,方便快速定位是什么区域的内存溢出。
堆
通过VM参数设置Java堆的大小,避免堆可扩展内存(设定-Xms和Xmx一样可避免堆自动扩展);
通过设定-XX:+HeapDumpOnOutOf-MemoryError可以让虚拟机在出现内存溢出异常的时候Dump出当前的内存堆转储快照。
本文共计2104个文字,预计阅读时间需要9分钟。
在JVM虚拟机规范中,Java虚拟机运行时数据区域除了程序计数器外,还包括其他可能引发OutOfMemoryError的情况。使用Hotspot虚拟机时,其简单的堆栈内存模拟可能导致内存溢出。以下为快速定位问题的方法:
在JVM虚拟机规范中,Java虚拟机运行时数据区域除了程序计数器(Program Counter Register)外都有可能出现OutOfMemoryError的情况,使用Hotspot虚拟机简单的模拟堆栈内存溢出的场景,方便快速定位是什么区域的内存溢出。
堆
通过VM参数设置Java堆的大小,避免堆可扩展内存(设定-Xms和Xmx一样可避免堆自动扩展);
通过设定-XX:+HeapDumpOnOutOf-MemoryError可以让虚拟机在出现内存溢出异常的时候Dump出当前的内存堆转储快照。

