Java内存管理-Permanent Space

VM 的Permanent generation space,实际上就是方法区,存储了下面两种类型的数据:

1.Class的节本信息

Package Name
Super class package name
Class or interface
Type modifiers
Super inferface package name

2.其它信息

The constant pool for the type
Field information
Method information
All class (static) variables declared
in the type, except constants
A reference to class ClassLoader
A reference to class Class

本来SUN设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收!

现在开发中最常见的错误莫过于Permgen Space!


解决办法:

1,把不必要的 jar 文件清理出 lib;
2,不要频繁地进行 reload;
3,增加 PermGen Space 内存区域,默认是 64MB,可以采用 -XX:MaxPermSize 这个 JVM 参数改这块区域改大一些,这个参数详见:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

如果用的是 Tomcat 的话,可以在 catalina.bat 开始处增加一行 set JAVA_OPTS=-XX:MaxPermSize=128m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值