zoukankan      html  css  js  c++  java
  • eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法

    解决这个问题之前,我们先来了解一下什么是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)那么就会产生此错误信息了。
    建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以减少jar 文档重复占用内存

    第一步:双击tomcat服务器->Overview->Open lauch configuration -->Arguments

    也可以通过下面的方式打开上面的界面:

    点击“Run” – “Run Configurations…”,选中Tomcat Server,进入Arguments分页

    第二步:修改VM arguments 配置,加入提升初始分配空间的参数

    -Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256M 

    参数的解释

    -Xms256m : 表示虚拟机占用系统的最小内存为256M。

    -Xmx1024m :表示虚拟机占用系统的最大内存为1024M.

    -XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小,堆空间剩余容量小于5%就会警告,建议把这个稍微设大一点,视自己机器内存大小来设置

    -XX:MaxPermSize:最大堆大小。这个也适当大些

    补充知识点

    Linux下如何修改JVM内存大小

    要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的.

    # OS specific support. $var _must_ be set to either true or false.
    JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
    cygwin=false

  • 相关阅读:
    Flink SQL Client初探
    ansible快速部署cassandra3集群
    利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)
    spark读取HDFS目录时报错Failed on local exception: com.google.protobuf.InvalidProtocolBufferException
    Spark学习进度-Spark环境搭建&Spark shell
    jquery获取select选中的值
    java零基础到架构师学习线路(附视频教程)
    plsql连接远程oracle数据库
    如何在通用异常处理时获取到方法名称(获取注解参数JoinPoint)
    java:找不到符号(使用lombok)
  • 原文地址:https://www.cnblogs.com/jepson6669/p/9040438.html
Copyright © 2011-2022 走看看