JVM:浅谈内存溢出的原因

1、java heap space

java.lang.OutOfMemoryError: ...java heap space... 堆栈溢出,代码问题的可能性极大。

2、GC over head limit exceeded

java.lang.OutOfMemoryError: GC over head limit exceeded 系统处于高频的GC状态,而且回收的效果依然不佳的情况,就会开始报这个错误。这种情况一般是产生了很多不可以被释放的对象,有可能是引用使用不当导致,或申请大对象导致。

3、PermGen space

java.lang.OutOfMemoryError: PermGen space jdk1.7之前才会出现的问题 ,原因是系统的代码非常多或引用的第三方包非常多、或代码中使用了大量的常量、或通过intern注入常量、或者通过动态代码加载等方法,导致常量池的膨胀。

4、Direct buffer memory

java.lang.OutOfMemoryError: Direct buffer memory 直接内存不足,因为jvm垃圾回收不会回收掉直接内存这部分的内存,所以可能原因是直接或间接使用了ByteBuffer中的allocateDirect方法的时候,而没有做clear。

5、StackOverflowError

java.lang.StackOverflowError - Xss设置的太小了。

6、unable to create new native thread

java.lang.OutOfMemoryError: unable to create new native thread 堆外内存不足,无法为线程分配内存区域。

7、request {} byte for {}out of swap

java.lang.OutOfMemoryError: request {} byte for {}out of swap 地址空间不够。

相关推荐
yangyanping2010814 分钟前
Go语言学习之对象关系映射GORM
jvm·学习·golang
Barkamin7 小时前
多线程简单介绍
java·开发语言·jvm
「QT(C++)开发工程师」11 小时前
C++17三大实用特性详解:内联变量、std::optional、std::variant
jvm·c++
她说..12 小时前
Java Object类与String相关高频面试题
java·开发语言·jvm·spring boot·java-ee
sinat_2554878113 小时前
泛型·学习笔记
java·jvm·数据库·windows·python
「QT(C++)开发工程师」14 小时前
C++17三大实用特性详解:折叠表达式、结构化绑定与constexpr if
jvm·c++
minji...14 小时前
Linux 多线程(五)用C++语言以面向对象方式封装线程
linux·运维·服务器·网络·jvm·数据库
她说..1 天前
Java 基本数据类型高频面试题
java·开发语言·jvm·spring boot
明灯伴古佛1 天前
面试:什么是可重入性?为什么 synchronized 是可重入锁?
java·jvm·面试
PrDf22Iw82 天前
编译执行与解释执行的区别是什么?JVM 使用哪种方式?
jvm