`
bravepan2011
  • 浏览: 5235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse--java.lang.OutOfMemoryError: PermGen space

 
阅读更多

 这一段时间,Eclipse总是死掉,几乎是稍微操作快一点就会死掉,几分钟一次,搞得人郁闷至极。浪费了不少时间,在网上搜了下,看到很多朋友也出现类似的情况,在网上求救,但是网上的办法都只是说通过修改eclipse.ini文件来加大Eclipse的内存。 

    自己试了下,发现不管用。今天,又死掉了,不过爆出一个经常出现的错误,大意是:permgen space导致内存溢出。实在忍无可忍,上网一搜,发现网络真是个好东西,尤其是对我们这种自学者而言,无疑是授业解惑的良师益友。

    这里总结一下自己的经验和网友的经验,希望能够对受此问题折磨的朋友有所参考价值。

解决办法如下:

在eclipse.ini配置文件中加上以下两行 
-XX:PermSize=128M  
-XX:MaxPermSize=128M

加上上2行后,我的eclipse.ini文件如下所示:

-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
512m 
-vmargs 
-Xms256m 
-Xmx512m 
-XX:PermSize=128M  
-XX:MaxPermSize=128M

这里的内存大小根据自己的物理内存情况来决定吧。

从网上的资料看PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。理由如下: 
        PermSize 和MaxPermSize如果设置为相同还可以在一定程度上提高性能,因为,PermSize在不断的变化中会需要转移其中的数据。如果固定了以后,则可以减少每次扩大PermSize带来的性能损失。

 

1、PermGen space简介

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。

说说为什么会内存益出: 
(1)这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同。 
(2) GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。

如果你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。


解决方法: 手动设置MaxPermSize大小

修改TOMCAT_HOME/bin/catalina.sh,在echo "Using CATALINA_BASE:   $CATALINA_BASE"上面加入以下行: 
       JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以减少jar 文档重复占用内存。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Jerry_Ran/archive/2009/04/28/4132956.aspx

分享到:
评论

相关推荐

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    4. **调整PermGen空间**:在Java 8之前, PermGen 区域用于存储类的元数据,如果这个区域耗尽,会出现`java.lang.OutOfMemoryError: PermGen space`错误。在Java 8中,这部分被MetaSpace取代,可通过`-XX:...

    系统稳定性——OutOfMemoryError常见原因及解决方法1

    当Java应用程序尝试分配新的对象,但堆内存(Heap Space)不足以容纳这些对象时,就会抛出`java.lang.OutOfMemoryError: Java heap space`。此错误可能由以下几个原因引起: - 创建超大数据结构,如大数组。 - ...

    解决Java_heap_space问题

    - 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...

    tomcat_eclipse配置内存溢出

    具体表现为在访问部署的应用程序时出现`java.lang.OutOfMemoryError: PermGen space`错误。这一错误通常是因为JVM(Java虚拟机)的内存设置不合理导致。 #### 内存溢出原因分析 内存溢出主要是由于JVM在运行时分配...

    eclipse_failed_to_create_the_java_virtual_machine_问题图文解析_收藏

    PermSize 和 MaxPermSize 的设置应该根据实际情况进行调整,太小可能会导致 java.lang.OutOfMemoryError: PermGen space。 重启 Eclipse 后,该问题应该解决。 其他解决方法 除了修改 eclipse.ini 文件外,还可以...

    eclipse常见报错

    1. Tomcat 服务器运行一段时间,总是会自动报异常:java.lang.OutOfmemoryError:PermGen Space 的错误。 解决方法:添加JVM参数:-Xms456m -Xmx556m -XX:PermSize=128m -XX:MaxPermSize=256m。如果是在 Tomcat 目录...

    系统内存不足引起异常的解决方法

    其中最常见的异常之一就是`java.lang.OutOfMemoryError:Java heap space`。这类问题不仅会严重影响项目的进展,还可能降低系统的稳定性和性能。因此,了解如何处理此类异常至关重要。 #### 详解`java.lang....

    Open Daylight Controller简易入门

    如果你遇到内存溢出错误(`java.lang.OutOfMemoryError: PermGen space`),可以通过修改Maven配置解决: ```bash export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" ``` **3.3 使用Mininet测试** Mininet是一...

    开发遇见问题解决

    **5.2 java.lang.OutOfMemoryError: PermGen space** 问题描述:在Eclipse中使用Tomcat启动项目时,可能会遇到内存溢出错误。 **解决方法:** - 调整JVM参数以增加内存分配。 - 在Eclipse中打开Run Configurations...

    后台管理系统

    更低版本的JDK6、JDK7可能需要设置Java内存-XX:PermSize=128M -XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet2.5或更高版本(如Tomcat6或更高版本)。...

    Tomcat调优及相关汇总设置

    - **非堆内存溢出**: 报错为`java.lang.OutOfMemoryError: PermGen space`,是因为方法区(Method Area)或永久代(PermGen Space)内存不足。 ##### 2. JVM内存参数 - **-Xms**: 设置JVM初始分配的堆内存大小。 -...

    基于Java的内存泄露分析及定位

    - **异常提示**:当出现`java.lang.OutOfMemoryError: PermGen space`时,表示PermGen内存不足。 - **调整参数**:通过设置`-XX:MaxPermSize`来调整PermGen的大小,避免PermGen内存溢出。 #### 内存分析工具 **...

    jspxcms:java 新闻发布系统

    更低版本的JDK7可能需要设置Java内存-XX:PermSize=128M -XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet3.0或更高版本(如Tomcat7或更高版本)。 ...

    eclipse tomcat启动,内存溢出问题

    在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这类错误提示。这表明当前分配给Java虚拟机(JVM)的内存不足以支持程序正常运行,即发生...

    xmljava系统源码-cs_singlewindow_cms:统一门户CMS系统

    -XX:MaxPermSize=512M,否则可能出现这种类型的内存溢出:java.lang.OutOfMemoryError: PermGen space。 Servlet3.0或更高版本(如Tomcat7或更高版本)。 MySQL5.5或更高版本(如需使用MySQL5.0,可将mysql驱动版本...

    jeecg常见问题

    java.lang.OutOfMemoryError: PermGen space ``` **解决方案**: 1. **增加JVM内存**:通过设置`-DMAVEN_OPTS`参数来调整JVM的内存分配。例如,可以通过以下命令行参数增加内存大小: ``` -DMAVEN_OPTS=-Xms1024...

    eclipse与tomcat的JVM设置

    - `-XX:PermSize=128M`:设置永久代(PermGen space)初始大小为128MB。 - `-XX:MaxPermSize=256M`:设置永久代的最大大小为256MB。 #### 四、Tomcat中的JVM设置 对于部署在Tomcat上的Java Web应用程序来说,合理...

Global site tag (gtag.js) - Google Analytics