中关村在线

软件

彻底解决PermGen空间问题

永久代空间(PermGen space)是Java虚拟机中用于存储类和元数据信息的内存区域。当类被加载时,其相关信息会被存入该区域,与存放对象实例的堆内存相互独立。由于垃圾回收机制在程序运行期间通常不会对永久代进行清理,这一区域的内存资源无法像堆内存那样被动态释放。因此,若应用程序需要频繁加载大量类,例如在使用动态类生成或热部署功能时,永久代的空间可能迅速耗尽。一旦其容量达到上限且无法扩展,系统便会抛出PermGen space内存溢出错误。这种问题在长时间运行或类加载频繁的应用中尤为常见,尤其在早期版本的JVM中更为突出。合理配置该区域大小或优化类加载机制,有助于避免此类异常的发生。

1、 网上有大量资料提到,可通过修改Tomcat安装目录下bin文件夹中的catalina.bat文件来调整JVM内存参数。具体操作是找到并编辑该文件中的set JAVA_OPTS这一行,将其设置为:-Xms1024m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=512m,以优化Java虚拟机的初始堆内存、最大堆内存及永久代内存大小,从而提升应用运行性能。

2、 参数说明

3、 JVM启动时堆内存的初始容量

4、 JVM堆内存最大限制值

5、 但我们注意到部分朋友(安装版)的系统中并未包含 TOMCAT_HOME/bin/catalina.bat 这一文件。

6、 Tomcat安装方式主要有两种,需根据情况选择。

7、 绿色版本可通过前述方法解决。

8、 安装版如同常规软件安装,无需该文件。以下将介绍安装版的两种具体操作方法。

9、 安装版解决方案一

10、 在Myeclipse中,依次点击窗口→首选项→Tomcat,然后选择你当前使用的Tomcat版本进行配置。

11、 进入JDK设置,在可选Java虚拟机参数中添加缓冲区扩展配置。

12、 初始堆内存256MB,最大堆内存512MB,永久代初始256MB,最大512MB。

13、 可适当调高配置:设置 JAVA_OPTS 为 -Xms1024m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=512m,以提升内存分配,增强程序运行稳定性,适用于对内存需求较高的应用场景,确保系统在高负载下仍能高效运作。

14、 进入Tomcat安装目录下的bin文件夹,运行其中的Tomcat7w.exe程序。

15、 所示,点击Java选项

16、 调整数值即可

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具