困扰好久的程序内存一直上涨的问题
环境:程序一直运行着,又不断的申请和释放资源,每周期涉及到的对象都蛮多,里面用到内存池
现象:程序每处理完一个周期,都会释放一些资源,但是不能全部释放完,导致物理内存和虚拟内存一直增加,但是到了一定的时间,十多天的时候,物理内存一下释放很多,但是虚拟内存还是缓慢增长
分析:1、内存池以前就有的,应该不会出现问题
2、用boundschecker检测,程序运行时候,还是能看到物理内存和虚拟内存不但增加,但是关闭程序时,boundschecker没有分析出来内存泄露
3、将所有NEW出来的对象的地址打印出来,再将所有释放的对象打印出来。比如:周一有些对象没有释放,但是在第二周期和第三周期能释放掉。这个逻辑是业务需求,不是程序问题。分析一段周期内的,申请释放资源情况,基本都能释放完,只有十多个对象没有释放完,这些有可能是下几个周期可以释放。
求救:请教各位高手,这个内存泄露可能由什么原因导致的,或者用什么方法检测更加方便准确,小弟在此先谢谢了。
能解决问题,分数不过可以追加!!