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

关于wince内存泄漏和清理系统内存!解决方法

2012-03-27 
关于wince内存泄漏和清理系统内存!因为测试时间很长,可能几天。测试数据要画成曲线出来,结果看到偶尔就有4K

关于wince内存泄漏和清理系统内存!
因为测试时间很长,可能几天。测试数据要画成曲线出来,结果看到偶尔就有4K字节的内存泄漏。wince系统也不会回收。
想问问wince有没有类似SetProcessWorkingSetSize函数,可以清理一下内存的函数。SetProcessWorkingSetSize这个函数wince用不了。

网络上说wince的GDI函数有泄漏。基本上我都按照大家建议的尝试过了,有改善,但是依然看到wince的内存不断变大。
如果大家有什么好想法也提提。
谢谢了!

分数不多,若有解决办法再另外发帖感谢大家。

[解决办法]
wince系统也不会回收,这正常,需要你的程序自己处理。

可能是 DC 产生的内存泄露

但会产生内存泄露的,不只是 DC,需要代码分析的。
[解决办法]
wince gdi感觉是有泄露,可能也不是泄露,而是缓存起来了,不会很快释放。
[解决办法]
4KB,4KB的减少,这可能是系统bug了。
[解决办法]
俺也遇到过,暂时没啥绝招。
[解决办法]
只能通过代码分析可能的原因
[解决办法]
申请内存的地方也可能泄露,还有wince下createDIBsection看看,我以前就在这里引起泄露,句柄释放的时候位置对不对等
[解决办法]
注意释放位置,有时候必须hdcmem释放完在释放句柄

探讨

对于GDI对象都自己释放了,就还是不行。

[解决办法]
本人也搞了四年的WinCE感觉GDI没有问题
[解决办法]
用俺的通用升级程序吧,在我资源里可以下载,他功能非常多,
修改一下他的XML文件,对应上你的程序文件名,和程序标题名,就可以帮你处理
你的内存了,你所做的只需,定时(20S以上吧,相信你的程序可以坚持运行20S以上吧)执行一次
那个 升级.EXE ,就可以了...
他会停止运行你的EXE,然后再运行你的EXE,然后停止自己,这样你的程序可以得到彻底初始化,
从而不怕内存泄露,让你的程序,永远正常运行,呵呵,其余功能自己摸索吧。。
顾名思义,可以帮你在线远程升级并自动运行的。

[解决办法]
另外内存清理,你可以尝试这个
VB.NET code
   PostMessage(hWnd, &H3FF, IntPtr.Zero, IntPtr.Zero) 

热点排行