程序在wince系统里启动后,通过观察 控制面板-->系统---->内存 记录以下情况
①程序启动后,内存情况如下:
存储内存 程序内存
已分配 6660KB 已分配 46560KB
正在使用 84KB 正在使用 27852KB
②每间隔一小时记录内存情况
24小时内变化不大,只有 程序内存 正在使用的内存好像增加为 27864KB (比最初增加12KB,但是晚间14个小时没增长过)
③在正好过24小时后突然变化如下:
存储内存 程序内存
已分配 6660KB 已分配 46560KB
正在使用 124KB 正在使用 31900KB
这一步是明显突变的,变化之前没看到有什么内存增长,但就是突然变了。
之后又不再变化,目前程序继续运行中,内存也没见有增长,当前是正好运行到25个小时。
请教各位,这wince为何会在程序运行24个小时后,突然增加了存储内存和程序内存中“正在使用的内存量” ??
按照我之前的经验,如果有内存溢出,应该是4KB慢慢增加的,不会突然变化这么多啊
------解决思路----------------------
系统是不会这样的。正常应该是你的程序问题。
简单点写个内容监控代码,直接输出自己程序的内容使用情况。长期监控就知道了。
最好还是查看你的业务流程,到底测试过程有啥变化没,哪些会是内存变大。
------解决思路----------------------
1 自己写一段内存使用情况的监测代码,放在自己的程序中定时监测内存使用情况。
2 与 存储内存 没有什么关系
分析代码中 GDI 内核对象,new/calloc等分配的内存是否有正确的释放。
------解决思路----------------------
你知道 存储内存 是做什么用途的吗?存储内存 只是用内存来虚拟出一块存贮文件等的空间。
如果你想让存储内存 减小,最简单的只需要 Copy 一个文件到 \ 目录中。
------解决思路----------------------
前面一直不增加,突然之间增加了4000KB左右
这也不可能是程序问题吧?程序内存泄露也不是这样泄露的
是不是有什么特殊的操作啊