OOM情况与原因
来源:互联网 发布:兰州李知女人 编辑:程序博客网 时间:2024/06/06 20:26
OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError
为什么会OOM?
1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。
2)应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。
内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。
内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。
最常见的OOM情况有以下三种:
java.lang.OutOfMemoryError: Java heap space ——>java堆内存溢出,此种情况最常见,一般由于内存泄露或者堆的大小设置不当引起。对于内存泄露,需要通过内存监控软件查找程序中的泄露代码,而堆大小可以通过虚拟机参数-Xms,-Xmx等修改。
java.lang.OutOfMemoryError: PermGen space ——>java永久代溢出,即方法区溢出了,一般出现于大量Class或者jsp页面,或者采用cglib等反射机制的情况,因为上述情况会产生大量的Class信息存储于方法区。此种情况可以通过更改方法区的大小来解决,使用类似-XX:PermSize=64m -XX:MaxPermSize=256m的形式修改。另外,过多的常量尤其是字符串也会导致方法区溢出。
java.lang.StackOverflowError ——> 不会抛OOM error,但也是比较常见的Java内存溢出。JAVA虚拟机栈溢出,一般是由于程序中存在死循环或者深度递归调用造成的,栈大小设置太小也会出现此种溢出。可以通过虚拟机参数-Xss来设置栈的大小。
- OOM情况与原因
- 基础知识记录:OOM异常出现的情况与处理方式
- JVM OOM情况
- OOM出现情况
- 什么情况导致oom
- 什么情况导致 oom
- Android OOM原因总结
- OOM原因和解决方案
- Android OOM原因总结
- Android OOM原因总结
- region server 中的OOM原因
- OOM形成原因及解决方法
- OOM原因及避免办法
- android OOM原因有哪些
- 内存泄漏(OOM)产生原因
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
- 红黑树详解
- 使用Application Loader打包上传AppStore流程
- html知识点总结
- 获取select下拉框被选中值和内容
- vue2.0专题:通信
- OOM情况与原因
- linux常用命令系列3
- CentOS 6 使用 yum 安装MongoDB及服务器端配置
- Spark编程之基本的RDD算子之join,rightOuterJoin, leftOuterJoin
- PAT乙级 1055. 集体照 (25) 结构体字符串字典排序,双端队列
- java开发C语言编译器:把C语言的数组操作转换成java字节码
- xgboost记录
- java使用轮询和wait()/notify()实现多线程之间的通信
- ios中UIView的常用属性