日期:2014-05-20  浏览次数:20796 次

web应用中 内存没有被回收,why???
在Spring + hibernate 的web应用程序中,我连续做几次批量的操作,在jdk1.6自带的jconsole控制台中监控到内存一直在增加,而未被回收,一开始以为是没有到回收的时间,可过了一个晚上的时间,内存始终在150M左右,没有被回收的迹象,一晚上hibernate Session已经失效,session中的对象应该都被释放了。。最初我jvm的虚拟内存设为 300M,我把jvm的虚拟内存设成250M(200Mtomcat就启动不起来了)也内存也未被回收。如果每天做批量错做,内存肯定会泄露。这问题该怎么解决呢???

我在每次执行完saveOrUpdate后执行session.flush(),session.clear();连续执行批量操作内存使用虽然没有一直增加,在上下波动的状态,但也没有被回收。

我手动的执行System.gc(),内存即会下降。

到底是什么原因会导致内存没有被垃圾回收器回收呢??

------解决方案--------------------
我们的项目现在也存在同样的问题。。。

关注ING...