内存溢出

项目S2SH做的,部署到tomcat5.5下面,差不多2天就内存溢出。监控了一个早上,发现内存一直处于增长不减的状态。
现在已经快接近使用1个G了,但是在线人数才20个左右。也就是说从昨天晚上一直到现在内存一直没有减少过。java的垃圾回收似乎没有起到任何作用。也就难怪了。物理内存1.5G。启动的时候占用大概160M的内存,剩余可支配内存1个多G,现在还剩余200多M的可用内存,而在线人数却没几个。
我猜测是垃圾回收失败造成的。溢出报错是说heap溢出。我改了xms=1200m和xmx1200m,maxpermsize=512m。
请问这下这种情况怎么处理?

垃圾回收是回收不可达对象,如果对象一直存在强引用,收回不了。
内存有增无减更说明是代码有问题。检查有没有大的数据量,有没有滥用缓存,有没有存在无限递归调用;
heap溢出很可能就是无限递归,死循环了

先检查代码吧

不能靠垃圾回收释放内存啊。。。
而且也显然不是gc的错
死循环和循环引用造成的