首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.OutOfMemoryError: PermGen空间

java.lang.OutOfMemoryError: PermGen空间
EN

Stack Overflow用户
提问于 2011-05-29 02:00:03
回答 3查看 7.7K关注 0票数 4

我如何防止这种情况发生?

代码语言:javascript
复制
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
Exception in thread "Thread-2" java.lang.OutOfMemoryError: PermGen space

例如,如果我经常重新加载datatable页面,就会发生这种情况。我知道垃圾收集器设置有问题..

我正在使用Eclipse Java EE IDE、JSF2、richfaces4

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-29 02:06:14

这是Tomcat特有的。这是一个相当糟糕的热发布/热部署程序,而且它还受到内存泄漏的困扰。我建议在Eclipse中通过服务器配置屏幕关闭自动升级,并在您想要反映保存的更改时手动重新启动Tomcat。如果你只有一个项目,重启应该不会花太多时间。

例如,Glassfish要健壮得多(也更快!)当涉及到热发布时。关于如何安装Glassfish并将其集成到Eclipse中以进行JSF2.0开发,请查看this tutorial

票数 10
EN

Stack Overflow用户

发布于 2013-08-30 18:20:41

您必须为tomcat JVM的PermGenSpace分配更多的空间。

这可以使用JVM参数来完成:-XX:MaxPermSize=128m

缺省情况下,PermGen空间是64M (并且它包含所有已编译的类,所以如果您的类路径中有很多jar (类),那么您确实可以填满这个空间)。

另外,您可以使用JVisualVM监视PermGen空间的大小,甚至可以使用YourKit Java Profiler检查其内容

票数 0
EN

Stack Overflow用户

发布于 2011-06-14 13:34:31

如果你在你的webapps文件夹中有更多的项目,这个异常会出现在.Remove某些项目中,这个异常不会出现。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6163432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档