完美解决PermGen space异常的问题

 更新时间:2021年01月22日 09:59:10   作者:不一样的程序员  
这篇文章主要介绍了完美解决PermGen space异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

开发中遇到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

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

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

相关文章

  • 2020最新eclipse安装过程及细节

    2020最新eclipse安装过程及细节

    这篇文章主要介绍了2020最新eclipse安装过程及细节,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 详解使用IntelliJ IDEA 配置Maven(入门)

    详解使用IntelliJ IDEA 配置Maven(入门)

    本篇文章主要介绍了详解使用IntelliJ IDEA 配置Maven(入门),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Spring Boot 集成MyBatis 教程详解

    Spring Boot 集成MyBatis 教程详解

    这篇文章主要介绍了Spring Boot 集成MyBatis 教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • Springboot整合企业微信机器人助手推送消息的实现

    Springboot整合企业微信机器人助手推送消息的实现

    本文主要介绍了Springboot整合企业微信机器人助手推送消息的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • java压缩zip文件中文乱码问题解决方法

    java压缩zip文件中文乱码问题解决方法

    这篇文章主要介绍了java压缩zip文件中文乱码问题的解决方法,需要的朋友可以参考下
    2014-07-07
  • 10个Elasticsearch查询的实用技巧分享

    10个Elasticsearch查询的实用技巧分享

    Elasticsearch是一个非常流行的搜索引擎,已经成为了许多企业的首选解决方案。本文将向大家介绍10个实用的Elasticsearch查询技巧,并配上对应的代码示例,希望对大家有所帮助
    2023-04-04
  • SpringBoot 整合 ElasticSearch操作各种高级查询搜索

    SpringBoot 整合 ElasticSearch操作各种高级查询搜索

    这篇文章主要介绍了SpringBoot 整合 ES 进行各种高级查询搜索的实践记录,本文主要围绕 SpringBoot 整合 ElasticSearch 进行各种高级查询的介绍,需要的朋友可以参考下
    2022-06-06
  • Java 数组交集的实现代码

    Java 数组交集的实现代码

    这篇文章主要介绍了Java 数组交集的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java使用自定义注解+反射实现字典转换代码实例

    Java使用自定义注解+反射实现字典转换代码实例

    这篇文章主要介绍了Java使用自定义注解+反射实现字典转换代码实例,注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰,注解对于它所修饰的代码并没有直接的影响,需要的朋友可以参考下
    2023-09-09
  • java 数据结构二叉树的实现代码

    java 数据结构二叉树的实现代码

    这篇文章主要介绍了java 数据结构二叉树的实现代码的相关资料,需要的朋友可以参考下
    2016-09-09

最新评论