JVM - OOM

既然选择了远方,即使天寒地冻,路遥马亡,我本就一无所有,又有何惧。

OOM(内存溢出)是一个让人很头疼的问题,出现 OOM 的问题有很多,下面就 OOM 可能出现的原因进行介绍。

1、堆空间太小

用以下参数启动 jvm
-Xms20m -Xmx20m

public class OOMTest {
   
    public static void main(String[] args) {
   
        Byte[] bs = new Byte[1024 * 1024 * 30];
    }
}

最大堆、初始化堆均为 20m,程序创建了 30m 的数组,直接 OOM。

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
1.1、处理方式
  1. 调大-Xmx 的值
  2. 通过内存分析工具,找出占用内存较多的对象

2、直接内存溢出

直接内存属于堆外内存,是直接向操作系统申请内存空间。
直接内存申请速度一般小于堆内存的申请速度,但是访问速度会比堆内存的访问速度快。
直接内存并没有完全的归 GC<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值