首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

Wince的各种内存储器泄露

2013-01-06 
Wince的各种内存泄露不知道是不是因为MFC的问题,总感觉内存会稀奇古怪的减少。不像一般的泄露,一般代码bug,

Wince的各种内存泄露
   不知道是不是因为MFC的问题,总感觉内存会稀奇古怪的减少。不像一般的泄露,一般代码bug,泄露的内存会稳定增加。但我的程序里面很随机,隔一段就少一点,每次都是4K。我想应该是GDI的资源泄露,因为普通的动态内存,稍微注意下,根本就不会忘记释放,也不会每次都是4K的整数倍。后面创建个最简单的MFC对话框,不停的刷新界面,不动它的情况下内存倒不会变,但是一点下鼠标,或者刷新一下外面的桌面,内存立马就会少4K或者8K甚至12K不等。然后几次之后就不再减少,怀疑是wince内部有啥缓存之类的机制,把窗口相关的数据会缓存起来,不会释放。后面弹出个系统属性对话框,内存立马减少几十K,之后点OK关闭,内存还不释放,这wince也太傻比了吧,这么存着是为了啥呢,就为了下次显示响应更快吗。。大家一起来说说内存泄露或者神秘减少的问题吧,看下wince有多这么不稳定。
[解决办法]
我这几天 被这个问题骚扰得吃不下饭了。。。持续关注中~~~
[解决办法]
CE 没有什么问题,这个问题不用讨论
[解决办法]
反正我不用MFC,所有的控件都自己写,纯Win32的程序,没有泄漏,连着跑几个星期都试过了,WinCE5.0和6.0通杀.
[解决办法]

引用:
  不是说它一定有泄露,只是它的一些缓存机制让人蛋疼啊。你用MFC随便创建个对话框,上面放几个按钮,然后显示,再销毁,总是会少一些内存,4K为单位,和按钮的数量成正比。


MFC 加些按钮是不会泄露的,如果反复N次后少4K是正常的,因为会有内存碎片
你倒可以测试一下不跑应用查看内存状况,看是不是驱动级的泄露
[解决办法]
Wince本身的问题已经不多了。
大多是自己编码习惯的问题,要先从自己的代码找原因。

[解决办法]
引用:
我们的产品,基本上都是基于对话框的

然后 UI 全部自己写,不使用 CE 提供的控件,如:按键,列表等。

我们的产品都出去几十 KK 了,如果有内存泄露的问题,早就被投诉死啦。

跟这位大哥一样
[解决办法]
windows ce的内存管理机制和普通windows不同,上面各位说到的都是内存碎片的现象。

原因是windows ce针对的设备都是小内存的。

它的表象是,不要频繁地开、放内存,否则wince来不及释放。

最佳解决办法是,使用全局变量,使程序一启动就开好了内存,当然占用内存太的程序需要使用其它技巧。

热点排行