JAVA语言之java.lang.OutOfMemoryError: PermGen space问题的解决办法
小标 2018-11-05 来源 : 阅读 996 评论 0

摘要:本文主要向大家介绍了JAVA语言之java.lang.OutOfMemoryError: PermGen space问题的解决办法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之java.lang.OutOfMemoryError: PermGen space问题的解决办法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


最近接触一个大项目,更新完,配置好数据源启动。启动半天一开始启动成功,但是访问地址页面一直转圈,最后报404,因为启动没发现报错,就又启动了几回,发现后台报了个这个错误: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的时候。


解决方案:


给自己要启动的项目单独配置这个:-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=768m


比如我的项目启动是:


配置步骤图解:


1.进入debug或者run下的Debug Configurations



 


2.配置对应项目的内存配置



 


关于配置的解析:


根据情况可以更改指定的内存大小。


-Xms256m:表示JVM Heap(堆内存)最小尺寸256MB,初始分配


-Xmx256m:表示JVM Heap(堆内存)最大允许的尺寸512MB,按需分配。


说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try…catch捕捉。


-XX:PermSize=512MB 最小尺寸,初始分配


-XX:MaxPermSize=512MB 最大允许分配尺寸,按需分配,过小会导致:java.lang.OutOfMemoryError: PermGen space


说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)的大小,如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。


MaxPermSize缺省值和-server -client选项相关。


-server选项下默认MaxPermSize为64m


-client选项下默认MaxPermSize为32m


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程