harric 发表于 2008-4-7 09:37:12

请问版主,JVM自动增长是何故?

请问版主,JVM自动增长是何故?
咨询个问题:java web项目,系统服务启动后,用Jconsle观察JVM。发现:在无人访问的情况下,JVM堆内存也在不停的增长,大约不到5分钟,自动进行了垃圾回收工作,JVM堆内存回到系统最初的占用情况。因为出现过系统服务宕机的情况,我认为在程序代码中存在内存泄漏的情况。因此特请问版主,这种无人访问的情况下JVM堆内存自行增长是否合理?

丁笑寒 发表于 2008-7-5 20:37:52

JVM自动增长,是不合理的。

堆内存的变化明显,且逐渐增长,说明Java虚拟机在进行频繁的垃圾回收工作,频繁的垃圾回收,也会导致你的CPU占用率的不断上升。

导致这种现象的原因之一是JAVA虚拟机的内存配置不合理,需要调优,调整垃圾回收机制。二,是代码存在问题,开发人员忽略了性能的因素,临时对象过多,所以大量内存被占用,JAVA虚拟机因此频繁进行垃圾回收,从而释放不在使用的内存。

你可以先这几点入手:
1,优化代码
2,调整JAVA虚拟机内存相关参数和垃圾回收机制
3,配置应用服务器实例,组成Cluser,缓解垃圾回收频率,降低CPU的消耗能力。

good luck!
页: [1]
查看完整版本: 请问版主,JVM自动增长是何故?