报错(内存溢出):Exception in thread "Thread-8" java.lang.OutOfMemoryError: PermGen space

 

Exception in thread "Thread-8" java.lang.OutOfMemoryError: PermGen space

解决办法:

“能正常使用,但是偶尔会报下面这个错误”

从偶尔这个说法来看,是你热部署次数太多了,导致JVM的 永久区(PermGen) 内存溢出。

或者可以将永久区调大点:
  -XX:MaxPermSize=256m


但更大的内存也只能让你热部署次数增加点,所以再溢出就干脆就重启系统了。

 

 


 

热部署也包括你编译后动态调试的这种情况。



当然如果你确认没有做过任何热部署的话,那么你就面临两种情况了:
1、jar包确实太多,所有class定义最终都会被装载 PermGen,结果溢出了;
2、滥用static来存储大数据,比如用static做缓存,结果缓存越来越大,结果溢出了。


你必须知道 永久区 跟你用 -Xmx512m 所设置的内存,完全不是一个东西;JVM对其用法也完全不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值