内存长期占用并导致系统不稳定一般有两种可能:
对象被大量创建而且被缓存,在旧的对象释放前又有大量新的对象被创建使
得内存长期高位占用。
表现为:内存不断被消耗、在高位时也很难回归到低位,有大量的对象
在不断的创建,经过很长时间后又被回收。例如:在 B=&% 中保
存了大量的分页查询数据,而 B=&% 的会话超时时间设置过长
(例如: 天),那么在旧的对象释放前又有大量新的对象在第二天产
生。
解决办法:对共享的对象可以采用池机制进行缓存,避免各自创建;缓
存的临时对象应该及时释放;另一种办法是扩大系统的内存容量。
另一种情况就是内存泄漏问题
表现为:内存回收低位点不断升高(以每次内存回收的最低点连成一条
直线,那么它是一条上升线);内存回收的频率也越来越高,内存占用
也越来越高,最终出现4C%@+%#,(=&%4的系统异常。
解决办法:定位那些有内存泄漏的类或对象并修改完善这些类以避免内
存泄漏。方法是:经过一段时间的测试、监控,如果某个类的对象数目
屡创新高,即使在 D+ ! 后仍然数目降不下来,这些对象基本上
是属于内存泄漏的对象了。
问题定位