java.lang.OutOfMemoryError: PermGen space 求助

maodie007 2008-05-30 10:48:37
用的是tomcat 对于这个错误在网上也找了下
说是这么形成的

OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大
内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load
的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage
Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD
很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进
行pre compile的时候。


我的猫里确实有很多第三方类包 spring hibernate struts 之类的。 即使初次加载未出现那错误,但是自己多次部署后也会出现这个错误。
网上说可以配置下tomcat属性,我也配置了,但是没有解决根本问题,再多加入web项目或者再多次部署工程也会同样出现此问题。
又如网上说可以这样

将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少
jar 文档重复占用内存的目的。


但是我在tomcat6.0版本下未看到这个文件夹。

我查看了下我tomcat里工程中lib文件夹的大小。有几个都过了10M。
不知道大家有没有碰到这个样的情况,也不知道你们是怎么解决的?
如果换个服务器怎么样呢? weblogic ? 或者 jboss?
哎。。。希望看到大家有经验的见解!!!!
感谢
...全文
421 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyren007 2008-11-19
  • 打赏
  • 举报
回复
我也遇到同样的问题了,汗...

和maodie007说的一样,该设置的都设置了.

最后你是怎么解决的啊
kekeemx 2008-05-30
  • 打赏
  • 举报
回复
如果代码没有问题,那么就只有加大tomcat的启动内存设置了.
awusoft 2008-05-30
  • 打赏
  • 举报
回复
这个看看你的代码,可能是代码有问题,占用太多内存了,看看任务管理器里的,应该有两个javaw.exe一个是mycelispe是正常占用很多的,一个是Tomcat的,看是不是超过100M了
maodie007 2008-05-30
  • 打赏
  • 举报
回复
悲哀的顶下
ace62 2008-05-30
  • 打赏
  • 举报
回复
同样关注
maodie007 2008-05-30
  • 打赏
  • 举报
回复
放少了分,今天不能加了。明天加
捏造的信仰 2008-05-30
  • 打赏
  • 举报
回复
这个问题光是设置 -Xms 和 -Xmx 是没用的,楼主的帖子中已经说得很清楚。Java 还有一个参数用于指定 PermGen space 的大小:-XX:MaxPermSize。PermGen space 的缺省大小是 64M,楼主可以在命令行参数中加上 -XX:MaxPermSize=256m 来增加大小。
lisl2003 2008-05-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maodie007 的回复:]
悲哀的顶下
[/Quote]
interpb 2008-05-30
  • 打赏
  • 举报
回复
为你的tomcat多分配一点 PermGen 内存 不就可以了
小官同志 2008-05-30
  • 打赏
  • 举报
回复
可以采用2种方法来试一下:
1、将你classes目录下的所有class打包为jar
2、将你的工程打包

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧