解决OOM:JVM内存不足问题
目录
- 什么是OOM?
- OOM出现的原因
- 总结
在运行项目的时候,代码maven等正确的情况下,项目跑不起来报内存不足的问题,很有可能就是OOM问题!
什么是OOM?
&ldquandroido;Out Of Memory”=“内存不足”
官方回答:
- 当 JVM 因为没有足够的内存来为对象分配空间,并且 垃圾回收器 也已经没有空间可供回收时,就会抛出这个错误。(注:非exception,已经严重到不足以被应用处理)。
举例:
- 就是你设置的项目需要10内存而你只有5,所以报OOM问题。
知编程客栈识点插入:
- 内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存www.devze.com就泄露了,因为http://www.devze.com申请者不用了,而又不能被虚拟机分配给别人用。
- 内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。
OOM出现的原因
- 分配过少:JVM 初始化内存小,业务使用了大js量内存;或者不同 JVM 区域分配内存不合理
- 内存泄漏:某一个对象被频繁申请,不用了之后却没有被释放,发生内存泄漏,导致内存耗尽
OOM的解决方法
直接的解决办法是将setting->Compile中属性的值调大,我这里是调到了3000
合理设置对外内存大小:
根据应用的实际需求调整-XX:MaxDirectMemorySize参数,给予足够的直接内存空间。(亲测:修改错误IDEA会无法启动,建议使用第一种♥️ )
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论