java.lang.OutOfMemoryError: PermGen space

本文详细解析了PermGenSpace内存溢出错误的原因及常见场景,并提供了具体的解决方案,包括调整Tomcat和Eclipse中的虚拟机参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次部署流程的开发环境,就遇到了PermGen space错误,java.lang.OutOfMemoryError: PermGen space 好久没有遇到这个错误了...还是蛮亲切的.

分析一下这个错的由来.

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域.内存中的这个区域是用来存放class和meta信息的,Class在被jvm load的时候,class信息会被放入该区域.它不同于存放实例的Heap区域,GC不会在主程序运行期间对PermGen space进行清理.

如果我们的工程中有很多类文件或者加载了很多jar包(jar包中的Class信息会被加载到PermGen space)的话,就很可能出现java.lang.OutOfMemoryError: PermGen space这个问题.

通过上面的分析就不难得出解决方法,加大PermGen space即可.在tomcat的catalina.bat的JAVA_OPTS 变量前设置JAVA_OPTS=" -XX:PermSize=97m -XX:MaxPermSize=256m″

或是在eclipse中的tomcat的VM arguments属性中加入参数:

-Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值