系统的非堆内存是否会一直上涨?只要运行程序进行操作就会上涨,并且在不进行操作时也不下降吗?
我在网上看到一些资料,非堆内存分为code cache和perm Gen,主要是这个perm Gen会不停上涨,设置了permSize和MaxpermSize都没有,现在的permSize是256M,MaxpermSize是640M,可是非堆内存上涨到640M后依然会当掉。
到底是什么原因,请高手解答一下。
网上有些参考说:“Permanent Generation会一直存在”
(引用http://hi.baidu.com/wy521ly/blog/item/a004c4d8f77ede3033fa1c30.html)
并且“不管怎样,永久代还是会逐渐变满,所以隔三差五重起java服务器是必要的,我每天都自动重起。”
(引用http://www.douban.com/group/topic/7095051/)
是不是按照网上所说,这个东西无法解决,只能靠经常重启服务器解决?

解决方案 »

  1.   

    Linux 服务器不存在这个问题,也是由于这个原因windows类的服务器需要从启动,我们的linux服务器1~3年从启动一次。
      

  2.   

    perm gen存放类和类元数据信息。通常上涨的情况是在你的web容器reload应用时发生,这也是由于不恰当的使用代码导致class reload时未能释放原有的class造成的。
      

  3.   

    2楼说的reload是指重启服务器吧?重启的时候原有的class释放了,也就是说重启后这段数据就会恢复正常,主要是我感觉,它重启后都把class加载完了,不应该在程序运行是重复加载了,就算加载,也不可能我只对重复运行一段程序,它还不断加载吧?
      

  4.   

    我说的reload不是服务器重启,是服务器下的单个应用的重启。
      

  5.   

    比如tomcat里的某个应用,你重新上传了某个class文件,会导致tomcat重新装载这个应用。
      

  6.   

    我现在加了两个参数让它垃圾回收器强制性这部分空间不知道可不可以,正在实验中。
    -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
      

  7.   

    你用到的类文件有这么多么?这种应该是你设计上考虑不周造成的,应该优化你的设计。特别注意JSP文件的多少!
      

  8.   

    即使光进行一个模块的功能操作,重复进行也会使permGen升高,应该不是jsp多的问题
      

  9.   

    即使光进行一个模块的功能操作,重复进行也会使permGen升高,应该不是jsp多的问题
      

  10.   

    用WebLogic基本不会有这种问题
      

  11.   

    用JConsole或者Jprofider看看.
    可以远程连接jvm的.
    看看都是什么对象
      

  12.   

    jie fen   回复内容太短了! 
      

  13.   

    )写一个Java函数最高效的实现字符串倒序(不能直接使用类库API)。 
      

  14.   

    因为Windows底层内置了缓存文件管理器。所以程序中有读写文件的操作时,就自动地被OS缓存到System Cache中(Linux好像没这么手欠)。而且微软提供的某些比较底层的C函数内部有bug,会导致System Cache无限增长最终挤占掉全部可用内存。有些C\C++程序员或者间接地---某些创新的Java代码,可能使用了这样的有bug函数,所以用户机器上的某个这样的程序可能是含bug的,是有害的。Vista和Server上都可以使用一个Set System Cache的函数,来设置系统缓存的上限、下限。但是这个函数无法在Windows XP中使用。另外,需要说明的是,一般情况下System Cache是自我管理的,增长到一定程度就停止继续增长了。新的缓存内容会自动替换掉最早进入、又最少使用的缓存内容。而bug版的应用程序会干脆破坏掉System Cache的完善管理机制。 
      

  15.   

    找到解决方案了,将实现CallbackFilter的类,也实现equals()和hashCode()方法,这个类的这两个方法与cglib内部的class cache的key相关.最终使得代理类生成的都一样即可
    参考http://topic.csdn.net/u/20080402/17/fe6b65eb-7f3e-48af-a9bc-93cb2931a8ef.html