`
三问飞絮
  • 浏览: 320603 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

OutOfMemoryError整理

    博客分类:
  • Java
 
阅读更多

1、java.lang.OutOfMemoryError: PermGen space

 

说明

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。用于存放Class和Meta的信息,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候、早期的Hibernate版本、老版本的cglib。

解决

只能增加内存。参数示例:-XX:PermSize=64M -XX:MaxPermSize=128m

 

2、Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded

 说明:

JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。

一般是因为堆太小。导致异常的原因:没有足够的内存。

 

解决方案参考:

a、查看系统是否有使用大内存的代码或死循环。

b、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit

 

3、java.lang.OutOfMemoryError: Java heap space 

  说明:

在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。

解决方案参考:

例如:java -Xms256m -Xmx512m

 

4、Error occurred during initialization of VM Could not reserve enough space for object heap

说明:

-Xmx设置的最大内存超出了物理内存大小,或者走出JDK本身的限制。

JDK在32位时,各个版本对-Xmx有各自的限制值。一般都在1.5G-2G之间。升级为64位版本则没有限制。

分享到:
评论

相关推荐

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    **描述:“搜集整理关于java错误处理:java.lang.OutOfMemoryError: Java heap space”** - 描述提到了对这个问题的相关资料进行整理,这意味着该文档将提供如何识别、分析并解决此类问题的方法。 #### 详细解析 ...

    java.lang.OutOfMemoryError 错误整理及解决办法

    Java中的`java.lang.OutOfMemoryError`是一个严重的问题,它表示Java虚拟机(JVM)在尝试分配新的对象时没有足够的内存。这个错误通常会导致应用程序崩溃。本文将深入探讨这种错误的原因、常见类型以及解决策略。 *...

    java虚拟机知识点整理

    - **标记-整理算法**:标记后让存活对象移动到一端,整理内存,避免碎片但效率较低。 - **分代收集算法**:针对新生代和老年代的不同特点,使用不同的回收策略。 7. **内存回收策略**: - 堆中的新生代回收效果...

    JVM核心知识学习和整理.docx

    常见的垃圾收集策略有标记-清除、复制、标记-整理和分代收集。不同的垃圾收集器,如Serial、Parallel、CMS、G1等,适用于不同的场景和性能需求。 JVM性能调优涉及堆大小设置、栈大小调整、垃圾收集器选择、内存分配...

    JAVA核心知识点整理.pdf

    - 程序计数器:是线程私有的,用于记录线程执行的字节码指令地址,是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。 - 虚拟机栈:也是线程私有的,存储局部变量表、操作数栈、动态链接、...

    java核心知识点整理-已转换.docx

    以下是对标题为“Java核心知识点整理-已转换.docx”的文档中提及的一些关键概念的详细解释: 1. JVM(Java Virtual Machine) JVM是Java程序的执行引擎,它负责将字节码(.class文件)转换为机器码,使得Java具有...

    java虚拟机整理文档(面试使用)

    如果堆空间不足,会触发`OutOfMemoryError: Java heap space`。 #### 1.5 方法区 方法区(Method Area)是所有线程共享的,存储了类的信息,如类的元数据、常量池、字段信息、方法信息等。在Java 8及以后的版本中,...

    neo.txtParser

    3. **解析数据**:调用解析函数,根据配置的规则对文本进行切割和整理,形成数据结构,如列表、数组或字典。 4. **处理结果**:解析后的数据可以进行进一步的过滤、排序、统计等操作,也可以直接导出为其他格式,如...

    JAVA常见异常整理.docx

    这些问题不应该由应用程序捕获和处理,而是表明系统级的问题,如`VirtualMachineError`(虚拟机错误)、`OutOfMemoryError`(内存不足错误)和`StackOverflowError`(堆栈溢出错误)。 2. **Exception**: - `...

    垃圾回收-GC简单总结.pdf

    2. 标记-整理算法:在标记-清除算法的基础上增加了一个整理过程,将存活的对象向一端移动,使内存变为连续,从而避免内存碎片化。 3. 复制算法:将堆内存分为两块大小相同的区域,一块用于对象分配,一块作为复制的...

    JVM面试整理

    - **标记-整理(Mark-Compact)算法**:标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 - **分代收集...

    java中jvm内存分配相关资料总结整理

    - **堆溢出**:如果创建太多对象或对象占用内存过大,堆内存可能会耗尽,抛出OutOfMemoryError。 5. **JVM调优** - **JVM参数设置**:通过设置-Xms, -Xmx控制堆内存大小,-Xss设置栈内存大小,-XX:NewRatio调整...

    1.GC垃圾回收1

    然而,这种方法不能处理循环引用问题,因此现代JVM大多使用其他垃圾回收策略,如标记-清除、复制、标记-整理和分代收集。 总的来说,JVM的内存管理机制是为了高效地分配、使用和回收内存,确保程序的稳定运行。理解...

    6第六章知识点整理2

    虚拟机栈和本地方法栈分别处理Java方法和本地方法的调用,如果栈深度超出限制或扩展失败,将抛出StackOverflowError或OutOfMemoryError。堆是所有线程共享的,主要用于存储对象实例,是垃圾收集的主要区域。 了解...

    Java虚拟机(JVM)面试题51道 pdf文档整理.zip

    本资料《Java虚拟机(JVM)面试题51道》是针对Java开发者和求职者精心整理的面试宝典,涵盖了JVM的基础概念、内存管理、垃圾收集、性能优化等多个关键领域。以下是对这些知识点的详细解读: 1. **JVM结构**:JVM由...

    Java8新特性之再见Permgen_动力节点Java学院整理

    然而,这个区域经常因为类加载器的内存泄漏或频繁的类加载而导致`java.lang.OutOfMemoryError: PermGen space`错误,特别是在开发环境和代码热部署时。 在Java 8中,Oracle决定移除PermGen,并引入元空间作为替代。...

    (new)JAVA核心面试知识整理

    如果栈深度过大或溢出,会抛出StackOverflowError或OutOfMemoryError。 2.2.3. 本地方法区 本地方法区为Java Native Interface (JNI)提供服务,存储非Java方法(如C/C++方法)的调用信息。同样,它是线程私有的。 ...

    JVM与性能优化知识点整理.pdf

    如果Java栈容量可以动态扩展,但扩展时无法申请到足够的内存空间,则会抛出`OutOfMemoryError`异常。 #### 二、JVM执行子系统 ##### 1. Class类文件结构 Class文件是Java程序编译后的结果,包含了Java虚拟机能够...

    java web开发中关于常用错误的整理

    - `OutOfMemoryError`:内存耗尽。 - `SecurityException`:安全限制阻止操作。 - `StackOverflowError`:系统堆栈溢出。 - `StringIndexOutOfBoundsException`:字符串索引超出范围。 - Java中的异常分为两类...

    JVM教程吐血整理干货.md

    - **OutOfMemoryError**:当JVM无法申请到足够的内存时,会抛出此异常。这通常发生在堆空间、方法区(永久代或元空间)耗尽的情况下。 通过以上分析,我们了解了JVM运行时内存分区的详细情况及其各自的特点和用途,...

Global site tag (gtag.js) - Google Analytics