当前位置: 代码迷 >> WinCE >> 关于wince内存泄漏和清理系统内存!解决方法
  详细解决方案

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

热度:93   发布时间:2016-04-28 13:15:00.0
关于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)
  相关解决方案