为了账号安全,请及时绑定邮箱和手机立即绑定

处理“java.lang.OutOfMemoryError:PermGen space”错误

处理“java.lang.OutOfMemoryError:PermGen space”错误

开心每一天1111 2019-06-03 16:47:07
处理“java.lang.OutOfMemoryError:PermGen space”错误最近,我在我的web应用程序中遇到了这个错误:java.lang.OutOfMemoryError:PermGen空间这是一个典型的Hibernate/JPA+IceFaces/JSF应用程序,运行在Tomcat 6和JDK1.6上。显然,这可能发生在重新部署应用程序几次之后。是什么原因造成的,如何避免呢?我该怎么解决这个问题?
查看完整描述

4 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

你最好试试-XX:MaxPermSize=128M而不是-XX:MaxPermGen=128M.

我不知道这个内存池的确切使用情况,但它与加载到JVM中的类的数量有关。(因此,为tomcat启用类卸载可以解决问题。)如果应用程序在运行过程中生成和编译类,则更可能需要一个比默认内存池更大的内存池。


查看完整回答
反对 回复 2019-06-03
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

多个部署后发生的应用服务器PermGen错误很可能是由容器对旧应用程序类加载器的引用引起的。例如,使用自定义日志级别类将导致应用服务器的类加载器保留引用。您可以通过使用jmap和jhat等现代(JDK 6+)JVM分析工具来检测这些类间的漏洞,并重新设计或取消它们的使用。通常的嫌疑人是数据库、记录器和其他基础框架级别的库。

看见类加载器泄漏:可怕的“java.lang.OutOfMemoryError:PermGen space”异常,特别是后续员额.


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 518 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信