在程序测试没问题之后,上线试运行,在运行的过程中某个功能一点击就报如下错,然后重启服务器就好了,一会又是如此,解决方法如下(亲测)
permgen space的全称是permanent generation space,是指内存的永久保存区域,这块内存主要是被jvm存放class和meta信息的,class在被loader时就会被放到permgen space中, 它和存放类实例(instance)的heap区域不同,gc(garbage collection)不会在主程序运行期对permgen space进行清理,所以如果你的应用中有很多class的话,就很可能出现permgen space错误, 这种错误常见在web服务器对jsp进行pre compile的时候。如果你的web app下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4m)那么就会产生此错误信息了。 解决方法: 手动设置maxpermsize大小修改tomcat_home/bin/catalina.sh在
echo "using catalina_base: $catalina_base"
上面加入以下行:
java_opts="-server -xx:permsize=64m -xx:maxpermsize=128m
个人建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
如对本文有疑问, 点击进行留言回复!!
[杭电多校2020]第一场 1004 Distinct Sub-palindromes
Swift -- 将本地生成的UIImage进行持久化保存(存到文件中fileManager.createFile)
网友评论