开发中遇到Eclipse报错:java.lang.OutOfMemoryError: PermGen space。

PermGen space百度翻译为:永久区域内存不足。

1. 先来一张jvm结构图:

内存不足问题一般都是发生在'堆‘上,GC作用区域也是在'堆‘上。

2. 这个'堆‘又划分成了好几块区域,包括:

新生代:包括伊甸园区和存活区。

老年代:

永久带:jdk1.8后变成元空间,元空间不再占用堆中的空间,而永久带却是在堆中开辟空间。

可以发现,堆中就有个永久区。永久区的内存溢出,其实就是堆的内存不够用。

只需要调大堆的内存大小就可以解决问题。

3. 调整堆大小的参数:

-Xms256m -Xmx1024m

-Xms:堆的初始化大小,这里设置成了256m.

-Xmx:堆最大的大小,这个设置成了1024m.

这里面就存在了一个可伸缩的空间,而这个空间的存在会损耗服务的性能。因为扩容和释放空间都是有性能损耗的。

最好的办法就是:-Xms和-Xmx设置成同样的大小。这样就不存在可伸缩的空间了。

4. jvm参数的配置位置。

a. 如果是使用tomcat服务:

修改tomcat/bin目录下的catalina.bat。(windows环境下修改文件catalina.bat, linux环境下修改文件catalina.sh)

配置在文件的第一行:

b.如果是eclipse

修改eclipse的Run Configurations。(如果是debug模式,修改Debug Configurations。)

写在此处,方便拷贝:

-Xms256m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m

c.如果已经被配置成了服务

这种情况,就需要修改注册表了。

c1. regedit命令打开注册表。

c2. 找到配置的tomcat服务。

修改:JvmMs,JvmMx,Options里面的参数值。

c3. 修改完毕后需要重启服务。

d. Eclipse的配置文件eclipse.ini中也可以配置jvm参数。

-vmargs

-Xms512m

-Xmx1024m

-XX:PermSize=256M

-XX:MaxPermSize=512M

至此,内存溢出的问题应该就解决了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

java permgen space_完美解决PermGen space异常的问题相关推荐

  1. 怎么解决eclipse报PermGen space异常的问题

    怎么解决eclipse报PermGen space异常的问题 最近使用eclipse做开发,使用的服务器是tomcat,但在启动时报了Caused by: java.lang.OutOfMemoryE ...

  2. IntelliJ IDEA的Maven项目在修改时报java.lang.OutOfMemoryError: PermGen space异常

    IntelliJ IDEA的Maven项目在修改时报java.lang.OutOfMemoryError: PermGen space异常 参考文章: (1)IntelliJ IDEA的Maven项目 ...

  3. 解决eclipse报PermGen space异常的问题

    解决eclipse报PermGen space异常的问题 参考文章: (1)解决eclipse报PermGen space异常的问题 (2)https://www.cnblogs.com/zj0208 ...

  4. 完美解决 ListView偶尔爆出的异常:java.lang.IllegalStateException

    在我们Android 开发中,ListView是在常用不过的控件了.但是有时候会爆出这种异常,就搞得好尴尬了. 明明我们在代码中的确是有调用adaptor.notifyDataSetChanged() ...

  5. 自定义BaseAdapter完美解决ListView异常:java.lang.IllegalStateException

    2019独角兽企业重金招聘Python工程师标准>>> 在我们Android 开发中,ListView是在常用不过的控件了.但是有时候会爆出这种异常,就搞得好尴尬了. 明明我们在代码 ...

  6. 什么是Java的永久代(PermGen)内存泄漏

    转自:http://www.codelast.com/?p=7248 WHAT IS A PERMGEN LEAK? 什么是Java的永久代(PermGen)内存泄漏? What follows is ...

  7. java.lang.OutOfMemoryError: Java heap space异常

    java.lang.OutOfMemoryError: Java heap space异常 用eclipse 开发碰到java.lang.OutOfMemoryError: Java heap spa ...

  8. 完美解决WebSocket 服务器 The WebSocket session [0] has been closed and no method...异常信息

    最近项目需要web客户端与服务器保持长链接的场景并需要服务器向所有链接的客户端推送消息,于是自然使用了WebSocket技术,自然要考虑到服务器于多个客户端线程安全的问题.于是乎,想当然的在WebSo ...

  9. java permgen大小_java – 为什么PermGen的默认大小这么小?

    在概念上对程序员来说,你可以认为"永久代"一般是毫无意义的.如果您需要加载类或其他"永久"数据,并且还有内存空间,那么原则上您也可以将其加载到某个地方,而不用在 ...

最新文章

  1. 20172328《程序设计与数据结构》实验二:树
  2. python 如何将字符串列表合并后转换成字符串? ''.join(List(str))函数
  3. MongoDB学习笔记(2)
  4. Gym - 101986F Pizza Delivery(最短路+DAG必经边)
  5. 100阶乘末尾有多少个零
  6. hive中的UDAF的使用流程记载
  7. 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq(线段树)
  8. Linux下SSH远程连接断开后让程序继续运行解决办法
  9. Ext-ajax请求数据
  10. Webpack实战(六):如何优雅地运用样式CSS预处理
  11. 一篇文章带你读懂 MySQL 和 InnoDB
  12. 从博客园迁移到自己用Hexo搭的博客
  13. CHM乱码解决方案!
  14. tomcat基本使用(二)
  15. Atitit 短信 技术的概论 短信备份 attilax总结 1.1. 短信的历史 1 1.2. 短信长度 160字的长度限制灵感来自对明信片的研究。明信片。大多数明信片上的字符不超过160个
  16. 卡尔曼滤波原理及公式推导
  17. 戴尔电脑硬件自检教程
  18. 连接中国移动彩信网关发送彩信
  19. DOS基础使用专题(强烈推荐)2
  20. 学信息安全买计算机,大学学习计算机类信息安全方向真的很蠢吗?

热门文章

  1. 三招!解决消息队列的数据积压问题
  2. python运算符_Python运算符的作用与意义
  3. python程序执行三种方式,Python运行程序的三种方法
  4. Python 假设有一段英文,其中有单独的字母I误写为i,请编写程序进行纠正。
  5. 数据挖掘中数据预处理方法_数据挖掘中的数据预处理
  6. 2020年度个人总结
  7. mongodump逻辑备份策略
  8. 各种系统镜像源码网站
  9. VirtualBox虚拟机黑屏
  10. 065-UDP网络通讯使用DatagramSocket及DatagramPacket实现多人聊天案例讲解