你现在位置:首页>技术论文>软件知识>正文
蓝海微芯WinCE查看内存泄露简记
日期:2011-11-7 11:21:29 点击:
来源:网络
作者: 未知
点击【】放大字体.
WW.W_PLC※JS_C,OM-PL,C-技.术_网

 
WWW.PLCJS.COM——可编程控制器技术门户

        首先是一个远程工具:Windows CE Remote Performance Moniter
P.L.C.技.术.网——可编程控制器技术门户

        通过这个工具的Chart View可以很直观的看到内存的不断增长,工具本身是集成在EVC集成开发环境下的,具体的我没有找到单独的可执行文件。正如其名——远程性能监视器,所以它的功能并不局限于监视内存。
WWW_PL※CJS_COM-PLC-技.术_网

 
WWW.PLCJS.COM——可编程控制器技术门户

P.L.C.技.术.网——可编程控制器技术门户

          可以Add一个Memory Load Counter,对于这个Counter Definition下面也有一个简单的介绍。Color,Scale,Width,Sytle均可修改。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

 
W1WW_P4LCJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

           之后便能通过窗口非常直观的看到内存使用的实时变化,现在运行一个存在严重内存泄露的应用程序,看一下内存监视曲线图。
——可——编——程——控-制-器-技——术——门——户

 
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

         内存使用直线上升,说明现在系统的内存泄露已经是相当严重了。看这个实时曲线图,只有在内存泄露非常严重的时候,才能看的直观。要是只存在轻微的内存泄露,从这看就是一条直线,看不出什么变化。
——可——编——程——控-制-器-技——术——门——户

WWW_P※LCJS_COM-PLC-)技.术_网

        内存使用情况也可以通过控制面板中的系统属性页来查看。现在程序内存总计40648KB,已使用18928KB。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 
plcjs.技.术_网

WWW_PLCJS_COM-PLC-技.术_网

plcjs.技.术_网

         还是运行一下刚才那个存在严重内存泄露的程序。已使用的内存已经变为了22288KB,内存泄露一路狂飙。
WWW_P※LCJS_CO※M-PLC-技-.术_网

 
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PL※CJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

            再来看一下Remote Heap Walker。
plcjs.技.术_网

 
P.L.C.技.术.网——可编程控制器技术门户

WWW_PLC※JS_COM-PmLC-技.术_网

            RemoteHeapWalker.exe是测试程序,0x1A1C0000是分配的堆ID(Heap Id),0xA0C010CE是进程ID(Process Id),HF32_DEFAULT是一个标志,表示这是系统默认分配的堆。双击弹出Heap_List窗口,显示该堆的块列表。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

 
WWW_PLCJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

          调试一下程序,通过new在自由存储区(堆)中申请一块内存。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

        查看一下Heap_List,发现在0x1E1C8420地址处分配了48个字节,标志位是Fixed。为什么两个地址不一样呢?vs的监视器是从0x00000000地址开始计算的,Remote Heap Warker是从0x1E1.C0000(见第6幅图)开始计算的。new的是32个BYTE,这块为什么BlockSize是48呢?因为wince系统下,一个块大小是16个BYTE,这块一定要能够整除16。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

 
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

        先简单的记录这点内容,找时间要搜集一下WinCE内存泄露(memory leak)的发掘,定位,解决方案和辅助工具,这是一个值得深入的问题。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行