日期:2014-05-18  浏览次数:20991 次

关于非堆内存一直上涨的问题
系统的非堆内存是否会一直上涨?只要运行程序进行操作就会上涨,并且在不进行操作时也不下降吗?
我在网上看到一些资料,非堆内存分为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/)
是不是按照网上所说,这个东西无法解决,只能靠经常重启服务器解决?

------解决方案--------------------
Linux 服务器不存在这个问题,也是由于这个原因windows类的服务器需要从启动,我们的linux服务器1~3年从启动一次。
------解决方案--------------------
perm gen存放类和类元数据信息。通常上涨的情况是在你的web容器reload应用时发生,这也是由于不恰当的使用代码导致class reload时未能释放原有的class造成的。
------解决方案--------------------
我说的reload不是服务器重启,是服务器下的单个应用的重启。
------解决方案--------------------
比如tomcat里的某个应用,你重新上传了某个class文件,会导致tomcat重新装载这个应用。
------解决方案--------------------
是不是jsp文件太多了?
------解决方案--------------------
你用到的类文件有这么多么?

这种应该是你设计上考虑不周造成的,应该优化你的设计。

特别注意JSP文件的多少!
------解决方案--------------------
开发中的系统部署时出现,还是完成的系统部署后出现的
------解决方案--------------------
等待牛人解答,,,,,,
------解决方案--------------------
是不是jsp文件太多了?
------解决方案--------------------
正在学习这方面的知识,看看
------解决方案--------------------
即使光进行一个模块的功能操作,重复进行也会使permGen升高,应该不是jsp多的问题
------解决方案--------------------
用WebLogic基本不会有这种问题
------解决方案--------------------
顶。。。。。。。。。。。
------解决方案--------------------
顶。。。。。。。。。。。。。。。。。。。
------解决方案--------------------
怎么不能回复该帖啊!!!!!????
------解决方案--------------------

------解决方案--------------------
很好 ,赞一个 谢谢!
------解决方案--------------------
很好 ,赞一个 谢谢!
------解决方案--------------------

------解决方案--------------------
jiefenxuexile
------解决方案--------------------
顶。。。。。。。。。。。。。。。。。。。
------解决方案--------------------
谁知道呢,呵呵,可能有问题
------解决方案--------------------
顶!!!!!!!!!!!!!!!!!!
------解决方案--------------------
DING !!!!!!!!!!!!
------解决方案--------------------
顶一下,学习中......
------解决方案--------------------
经验值得学习,谢谢。。。学习一下就溜
------解决方案--------------------
经验值得学习,谢谢。。。学习一下就溜
------解决方案--------------------