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

rs会无限止增大内存?
while(true)
{
strSql= "select   *   from   liandong     limit   1; ";
ResultSet   rs=db.executeQuery(strSql);
       

}
我在线程中.加入了这样一个语句后,内存在不到半分钟时间内从28K升到了98K,直接溢出内存.请问怎么办.

------解决方案--------------------
while(true)
{
strSql= "select * from liandong limit 1; ";
ResultSet rs=db.executeQuery(strSql);


}
没有上下文 看起来这像死循环吗?
------解决方案--------------------
不清楚你要干嘛。

------解决方案--------------------
貌似一个死循环
------解决方案--------------------
死循环
java的内存释放没有那么快的。
------解决方案--------------------
rs.close();
释放
------解决方案--------------------
> > > rs会无限止增大内存?
一个rs不会,很多个说不好了
------解决方案--------------------
“原来你跑这里来了”,哈哈,开个玩笑,看我的帖子:http://community.csdn.net/Expert/TopicView3.asp?id=5615537

就是这个原因!
------解决方案--------------------
你这样做完全没有道理呀,而且应该每次执行完插入要注销 rs 的,你没有注销当然溢出了!
如果是插入语句到时有道理,不过可以通过 批处理 来解决,
------解决方案--------------------
while(true){
strSql= "select * from liandong limit 1;
ResultSet rs=db.executeQuery(strSql);
..............
rs用完后要close(),由JVM处理,但处理时间不定,也有可能溢出。
}
顺便问以下System.gc(); 会不会降低效率?