解决PermGen space异常问题 骑猪看日落 2022-05-31 00:27 255阅读 0赞 开发中遇到Eclipse报错:java.lang.OutOfMemoryError: PermGen space。 PermGen space百度翻译为:永久区域内存不足。 1. 先来一张jvm结构图: ![998868-20170810172039558-1415489489.png][] 内存不足问题一般都是发生在’堆‘上,GC作用区域也是在’堆‘上。 2. 这个’堆‘又划分成了好几块区域,包括: 新生代:包括伊甸园区和存活区。 老年代: 永久带:jdk1.8后变成元空间,元空间不再占用堆中的空间,而永久带却是在堆中开辟空间。 ![998868-20170810172857527-222682662.png][] 可以发现,堆中就有个永久区。永久区的内存溢出,其实就是堆的内存不够用。 只需要调大堆的内存大小就可以解决问题。 3. 调整堆大小的参数: -Xms256m -Xmx1024m -Xms:堆的初始化大小,这里设置成了256m. -Xmx:堆最大的大小,这个设置成了1024m. 这里面就存在了一个可伸缩的空间,而这个空间的存在会损耗服务的性能。因为扩容和释放空间都是有性能损耗的。 最好的办法就是:-Xms和-Xmx设置成同样的大小。这样就不存在可伸缩的空间了。 4. jvm参数的配置位置。 a. 如果是使用tomcat服务: 修改tomcat/bin目录下的catalina.bat。(windows环境下修改文件catalina.bat, linux环境下修改文件catalina.sh) ![998868-20170116115245583-1301579346.png][] 配置在文件的第一行: ![998868-20170116115739208-107775436.png][] b.如果是eclipse 修改eclipse的Run Configurations。(如果是debug模式,修改Debug Configurations。) ![998868-20170116134806708-1663394040.png][] 写在此处,方便拷贝: -Xms256m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m ![998868-20170116135153396-1583251291.png][] c.如果已经被配置成了服务 这种情况,就需要修改注册表了。 c1. regedit命令打开注册表。 c2. 找到配置的tomcat服务。 ![998868-20170810175128277-1778219412.png][] 修改:JvmMs,JvmMx,Options里面的参数值。 c3. 修改完毕后需要重启服务。 d. Eclipse的配置文件eclipse.ini中也可以配置jvm参数。 ![998868-20170116120005239-1129513002.png][] -vmargs -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M 至此,内存溢出的问题应该就解决了。 [998868-20170810172039558-1415489489.png]: /images/20220531/9cb898b2b6354bdf9e6b673fd711552c.png [998868-20170810172857527-222682662.png]: /images/20220531/725c8529992d4ca99845e3ca47d0dc2d.png [998868-20170116115245583-1301579346.png]: /images/20220531/ee835054093b4a9f869be63f400637ce.png [998868-20170116115739208-107775436.png]: /images/20220531/f5fc4b70a451429fa4fe86499f512256.png [998868-20170116134806708-1663394040.png]: /images/20220531/1c22e915f5ed43bd93c59e089ca727dc.png [998868-20170116135153396-1583251291.png]: /images/20220531/8a4261306e3240cdbc6173e80195dabb.png [998868-20170810175128277-1778219412.png]: /images/20220531/1ce4a78af1be4deb9e9c396fb4e8c4d6.png [998868-20170116120005239-1129513002.png]: /images/20220531/2d78808c0907453993c3e9618b0dae74.png
还没有评论,来说两句吧...