我用gui写了一个小的java应用,逻辑挺简单,就是循环的扫描数据库中的一个表。结果在服务器上跑了两天后,发现java虚拟机占用的内存达到了70M,而且我主意观察了一阵,内存还在持续上涨,没有下降的趋势。
由于业务逻辑很简单,又因为数据还没有完全导过来,数据量不大,所以我猜测不大可能是逻辑的问题,很可能出在gui这方面了。
当我把那个窗口最小化后,奇怪的事情发生了,虚拟机内存突然降到了2M.以后又持续上涨,当我重复同样的事情时,内存又马上降下来。所以,每当最小化窗口时,好像内存就被回收了。不知道有没有人遇到过这种情况。
我用的是swing,以前从来没有用过,不知道有什么需要注意的地方。虽然现在没出问题,我不知道以后会不会出,毕竟,不可能总有人看着它的,而且它要保证24小时顺利运行的。界面就是不停的在文本框中滚动显示一些信息。如需要我可以把代码贴出来。
先提前谢谢大家了.^_^
由于业务逻辑很简单,又因为数据还没有完全导过来,数据量不大,所以我猜测不大可能是逻辑的问题,很可能出在gui这方面了。
当我把那个窗口最小化后,奇怪的事情发生了,虚拟机内存突然降到了2M.以后又持续上涨,当我重复同样的事情时,内存又马上降下来。所以,每当最小化窗口时,好像内存就被回收了。不知道有没有人遇到过这种情况。
我用的是swing,以前从来没有用过,不知道有什么需要注意的地方。虽然现在没出问题,我不知道以后会不会出,毕竟,不可能总有人看着它的,而且它要保证24小时顺利运行的。界面就是不停的在文本框中滚动显示一些信息。如需要我可以把代码贴出来。
先提前谢谢大家了.^_^
“每当最小化窗口时,好像内存就被回收了“ , 这只是假象,根本就没回收你可以使用JBuilder的Optimizer工具,监测一下,就比较容易发现问题了
内存增长是应该的
但是应该稳定在一个区域
否则 就应该是你的程序有问题了
应该是有些资源没有释放
你可以找个工具检测一下窗口最小化后
是要释放资源的
这个是java自己处理的
可是怎么进行dispose呢,还有就是应该什么时候调用?