常见的OOM现象

常见的OOM现象
1、HeapSize OOM 堆空间溢出
举例:while循环中不断的new Object();
堆空间溢出:old区域剩余的空间,无法满足将要晋升的对象的大小。

原因:错误的代码导致对象没有被回收。
	并发导致内存没有被GC:代码提速
	修改jvm参数:
FullGC:时间很长,可能是活着的对象很多,gc过程中,标记活着的对象所需要的时间很长,且每次gc完释放的空间很小。且会频繁GC。

2、PermGen OOM 永久带溢出
永久带存放的东西:class,常量,
案例:使用intern()不当会导致永久带溢出
案例:class卸载的条件和苛刻,当该class对应的ClassLoader下所有的class都没有活着的对象的时候,class才会被卸载【重要】

3、DirectBuffer OOM
属于 C Heap的一部分
终端 -----》 内存 ------》JVM I输入
jvm------》 内存 ------》 终端 O输出
Directbuffer 就是内存和jvm交互中的缓存部分。
MaxDirectMemorySize 来设置该区域的大小,超过该值,则报内存溢出
默认情况下:MaxDirectMemorySize = Xmx -1个Survivor

4、StackOverflowError OOM 栈溢出【native memory】
-Xss 设置其大小,默认空间在 256kb - 1M之间

案例:死递归
		解决方法:控制递归的次数,当超过某个值时,停止递归调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值