[java]java.lang.OutOfMemoryError总解
2007-08-31 14:58
1).java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space 从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。 设置:-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 因为项目中引用了很多的jar包,而这些jar包中的class信息会被Web服务器的class loader加载到 PermGen space 区域,在 JVM 默认的情况下,该部分空间的大小只有 4M,在jar包非常多的情况下,显然是不够用的,所以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。 建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
2).java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
附:设置JVM内存,请搜索详细查看Java虚拟机的选项。 例:tomcat手动设置MaxPermSize等大小。 可在catalina.bat文件的“rem Guess CATALINA_HOME if not defined”这行上面加入以下行: set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m
注:转载请注明原文出处! 本文出于http://hi.baidu.com/xiaolangs/blog/item/c99dcac2542e25190ef47758.html
|
分享到:
相关推荐
针对上述问题,我们可以采取以下措施来解决Eclipse中Tomcat启动时遇到的内存溢出问题: ##### 1. 修改Tomcat启动脚本中的JVM参数 - 打开Tomcat安装目录下的`bin`文件夹,找到`catalina.bat`文件(Windows系统)或`...
本篇将详细探讨Eclipse运行工程时内存溢出的问题及其解决方法。 首先,了解内存溢出的原因至关重要。当Java虚拟机(JVM)分配的堆内存不足以存储程序运行过程中的对象时,就会发生内存溢出。这可能是由于程序设计...
在开发过程中,使用Eclipse作为集成开发环境(IDE)时,有时会遇到运行大型项目时出现内存溢出(OutOfMemoryError)的问题。这种情况不仅影响了开发效率,还可能打断开发流程。本文将详细介绍如何有效地解决Eclipse...
在使用Eclipse进行Java开发时,可能会遇到应用程序运行过程中出现“OutOfMemoryError”(内存溢出错误)。这类错误通常发生在Java虚拟机(JVM)无法为新对象分配足够的内存空间时,常见原因包括堆内存不足、永久代...
假设在生产环境中,一个项目运行三周左右会出现内存溢出异常。JDK 使用的是 64 位版本,配置参数为 `-Xmx3078M -Xms3078M -XX:PermSize=1024M -XX:MaxPermSize=1024M`。通过 MAT 分析发现: - **Histogram** 显示 ...
在使用Eclipse开发工具的过程中,经常会出现“内存溢出”(Out of Memory Error)的问题,这主要是由于Eclipse运行时所分配的内存不足导致的。当出现这种情况时,不仅会影响开发效率,还可能造成项目的延误。本文将...
在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合Apache Tomcat服务器进行Web应用开发时,经常会遇到内存溢出的问题。这类问题通常表现为应用程序运行过程中出现OutOfMemoryError(OOM)错误,...
### Eclipse 内存溢出解决办法详解 #### 一、PermGen Space 概念与问题成因 在Java虚拟机(JVM)中,PermGen Space(Permanent Generation Space)是专门用于存储Class和Meta信息的一个区域。当一个Class被加载到...
在进行Web应用程序开发过程中,尤其是在使用Tomcat服务器结合Eclipse或MyEclipse等集成开发环境(IDE)时,开发者可能会遇到一个常见的问题——内存溢出。具体表现为在访问部署的应用程序时出现`java.lang....
内存溢出(Memory Leak)是指程序运行过程中使用的内存超过系统所能提供的最大内存限制时所出现的问题。这种情况通常发生在Java等需要进行垃圾回收的语言中。当应用程序创建的对象没有被适当地释放或回收时,就会...
本文将详细介绍如何在不同环境下解决Maven构建过程中出现的内存溢出问题。 #### 二、内存溢出原因分析 在深入探讨解决方案之前,我们需要先理解为何会出现内存溢出的情况。通常情况下,Maven构建过程中的内存溢出...
在IT领域,特别是Java开发中,Eclipse作为一款广泛使用的集成开发环境(IDE),其内存管理问题时常困扰着开发者,尤其是“内存溢出”这一常见问题。本文将深入解析Eclipse内存溢出的原因、表现形式以及如何通过调整...
然而,在使用过程中,用户可能会遇到“eclipse内存溢出报错”的问题,这一现象通常表现为Java.lang.OutOfMemoryError: Java heap space错误,这主要源于Eclipse运行时分配给Java虚拟机(JVM)的内存不足,导致程序...
Eclipse是一个功能强大且广泛使用的集成开发环境(IDE),但是,如果不正确地设置其运行内存,可能会导致内存溢出错误。因此,正确地设置Eclipse的java内存是非常重要的。本文将详细介绍如何设置Eclipse的java内存,...
为了更好地理解并解决MyEclipse中的内存溢出问题,首先需要对JVM的内存管理机制有所了解: 1. **堆内存(Heap)**:这是JVM用来存储对象实例和数组的主要区域。当一个类被加载到JVM中时,它的实例将在这个区域分配...
在使用Eclipse进行软件开发过程中,可能会遇到“内存溢出”(Out of Memory Error)的问题,导致Eclipse无法正常启动或运行。这类问题通常与JVM(Java虚拟机)的内存配置有关。 #### 二、内存溢出原因分析 ##### 1...
内存溢出(Out of Memory)是指程序在运行过程中申请的内存超过了系统能提供的最大内存限制时,程序会抛出异常,导致应用崩溃或者无法正常运行。这种现象在Java等面向对象的编程语言中较为常见。 #### 知识点二:...
在开发过程中,经常会遇到IDE(集成开发环境)如Eclipse运行缓慢甚至崩溃的情况,这往往与内存管理不当有关。本文将详细介绍如何针对Eclipse进行内存优化,解决内存不足问题,并避免因内存溢出导致的崩溃。 #### 二...
通过以上步骤,我们可以有效地解决Eclipse在运行或调试过程中出现的内存溢出问题。需要注意的是,具体的内存大小设置应根据项目的规模和个人计算机的硬件配置来进行调整。此外,随着Java版本的更新,某些参数的名称...
当Eclipse运行大型项目或者打开大量文件时,如果初始分配的内存不足,就会触发JVM的垃圾回收机制,甚至可能导致内存溢出错误(OutOfMemoryError)。 解决这个问题的第一步是找到eclipse.ini文件。该文件位于Eclipse...