解决Java项目内存溢出:Java.lang.OutOfMemoryError:PermGen space
2017-08-16 17:01
656 查看
Java.lang.OutOfMemoryError:PermGen space 执行项目的时候出现这个错误,是说出现了非堆内存溢出。PermGen space ,全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen
space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误;
解决办法:
1.IDEA中用maven插件启动的项目:
VM-options增加:-server
-XX:PermSize=512M -XX:MaxPermSize=1024m
(1. 改变项目的VM options
2. Tomcat启动的Maven项目,在Tomcat配置中修改VM options,
Run-Edit Configuration-Tomcat Server-要修改的tomcat-Runner-Vm options增加:
-server
-XX:PermSize=512M -XX:MaxPermSize=1024m
JVM内各参数意义:
3.直接修改Tomcat本地配置文件:
①bin目录下的 catalina.bat 添加一行在行set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"下面:
set "JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m"
②bin目录下的 catalina.sh 首行添加
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
参考博文:JVM内存配置及配置参数详解---http://blog.csdn.net/bamboo_cqh/article/details/67635163
推荐一本书,个人感觉写Java代码进阶必读:深入理解Java虚拟机:JVM高级特性与最佳实践].周志明,电子版下载地址:
http://download.csdn.net/download/ydk888888/9928145,与君共勉;
space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误;
解决办法:
1.IDEA中用maven插件启动的项目:
VM-options增加:-server
-XX:PermSize=512M -XX:MaxPermSize=1024m
(1. 改变项目的VM options
2. Tomcat启动的Maven项目,在Tomcat配置中修改VM options,
Run-Edit Configuration-Tomcat Server-要修改的tomcat-Runner-Vm options增加:
-server
-XX:PermSize=512M -XX:MaxPermSize=1024m
JVM内各参数意义:
3.直接修改Tomcat本地配置文件:
①bin目录下的 catalina.bat 添加一行在行set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"下面:
set "JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m"
②bin目录下的 catalina.sh 首行添加
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
参考博文:JVM内存配置及配置参数详解---http://blog.csdn.net/bamboo_cqh/article/details/67635163
推荐一本书,个人感觉写Java代码进阶必读:深入理解Java虚拟机:JVM高级特性与最佳实践].周志明,电子版下载地址:
http://download.csdn.net/download/ydk888888/9928145,与君共勉;
相关文章推荐
- myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案
- myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法
- java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- 彻底解决Eclipse 5.2内存溢出:java.lang.OutOfMemoryError: PermGen space
- Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案
- Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案
- eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
- 内存溢出数值jvm 内存溢出 在myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
- 手工配置Tomcat对应的JVM内存大小解决java.lang.OutOfMemoryError: PermGen space问题
- 内存溢出--java.lang.OutOfMemoryError: PermGen space
- jvm 内存溢出 在 a4df myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
- eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space 和 Java heap space 关于MyEclipse eclipse tomcat内存溢解决方法
- struts2自定义模板内存溢出 java.lang.OutOfMemoryError: Java heap space(问题已解决)
- eclipse启动或者运行过程中tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
- jvm 内存溢出 在myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
- nested exception is java.lang.OutOfMemoryError: PermGen space (java内存溢出,内存持久代不足的解决方式)