WinCE下释放了内存,但是用内存检测工具发现没怎么减少,是怎么回事?
在WinCE下进行一个比较复杂的计算,用Remote Performance Monitor监测内存,从31%开始,计算过程中总共增加了近20M,计算完成后程序就释放内存 (我的内存分配使用了new和VirtualAllloc).
但此时在WinCe下看系统属性,并且用Remote Performance Monitor,都发现内存减少的不多,可能只少了几百K,从高峰89%落回到85%
然后进行同样的计算,则此过程中内存显示仅仅只向上波动了几百K或者1M多,计算完成后又回到了85%,如此反复多次,都是向上波动了一小部分后来又落了回来,其中有一次落回来后为84%,比计算前还低了一点.
我感觉内存应该是正常释放了,程序逻辑上没有问题,要不,多次计算后内存早就爆了,这也从第二次以后的计算后内存都能落回来得到证实.
但问题是,为什么释放后内存不能回到最初的起点呢,即回到31%,而不是85% ?
难道WinCE为该程序保留了内存空间以备随时使用?
如果上述假设成立,则若别的程序需要内存时,WinCE是否会回收该内存空间以备其他程序使用? 能不那主动释放掉呢?