搜索
bottom↓
回复: 4

尝试运行0.4.0,发现rtgui好像有内存泄露

[复制链接]

出0入0汤圆

发表于 2010-12-1 16:46:59 | 显示全部楼层 |阅读模式
问题1
当前运行的程序是svn里提供的rtgui测试程序
测试流程就是:显示第1页->list_mem()->显示第2页->list_mem()->显示第3页->list_mem()->.........
请看finsh输出的信息
SystemInit......

\ | /
- RT -     Thread Operating System
/ | \ 0.4.0 build Dec  1 2010
2006 - 2009 Copyright by rt-thread team
File System initialized!

LCD Device ID : 9320 finsh>>event size: 28
event size: 20
list_mem()
total memory: 53464
used memory : 34660
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 35016
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 35428
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 35720
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 36060
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 36352
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 36644
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 37348
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 37640
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 37836
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 38692
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 38888
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 39180
maximum allocated memory: 43360
        32, 0x00000020
finsh>>


可以看出内存消耗是一直上涨的,此时执行测试(不断按上一页):显示第n页->list_mem()->显示第n-1页->list_mem()->显示第n-2页->list_mem()->.....
finsh>>list_mem()
total memory: 53464
used memory : 39180
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 39180
maximum allocated memory: 43360
        32, 0x00000020
finsh>>list_mem()
total memory: 53464
used memory : 39180
maximum allocated memory: 43360
        32, 0x00000020
finsh>>
可以看出内存使用并没有变化,通过上面测试是不是可以认为:显示过的页面并没有释放资源,导致内存使用不断增多
那么这样的话,如果有很多页,用户点下去早晚要崩溃。

/////////////////////////////////////////       问题2         /////////////////////////////////////////////////////
filelistview控件修正了之前销毁时不能释放内存的bug,但是在使用中好像仍然有内存泄露问题
测试过程如下:
首先看当前内存使用情况:
finsh>>list_mem()
total memory: 53464
used memory : 40552
maximum allocated memory: 43360
        32, 0x00000020
然后点击测试页面中的“open file”
finsh>>list_mem()
total memory: 53464
used memory : 45184
maximum allocated memory: 47096
        32, 0x00000020
向下翻页后
finsh>>key_right
finsh>>list_mem()
total memory: 53464
used memory : 45580
maximum allocated memory: 47096
        32, 0x00000020
再翻一页
finsh>>key_right
finsh>>list_mem()
total memory: 53464
used memory : 45860
maximum allocated memory: 47096
        32, 0x00000020
向上翻页
finsh>>key_left
finsh>>list_mem()
total memory: 53464
used memory : 45972
maximum allocated memory: 47096
        32, 0x00000020
再向上翻页
finsh>>key_left
finsh>>list_mem()
total memory: 53464
used memory : 46028
maximum allocated memory: 47096
        32, 0x00000020
退出文件浏览
finsh>>list_mem()
total memory: 53464
used memory : 42120
maximum allocated memory: 47096
        32, 0x00000020

可以看出中间翻页的时候内存急剧增长,导致多翻几次页面,系统就要崩溃。
还可以看出退出文件浏览后,系统内存比之前增长了2k,不知道为什么。

请老大们看看是不是确实存在问题:)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-1 16:52:26 | 显示全部楼层
好的,多谢反馈,内存方面继续查查!可惜不能在win32下使用finsh shell,否则的话就方便多了。

出0入0汤圆

发表于 2010-12-5 20:46:38 | 显示全部楼层
应该没有内存泄漏的问题,在demo中,各个view都不会删除掉,而当每显示一个view的时候都会有剪切域的内存操作,所以外表显示出来是增加。内部,内存占用量到一定时候就不再增长了。

filelist_view应该也不存在这个问题,不过filelist_view打开后确实内存占用比较大(2k多),删除这个view后,内存占用就释放了。

出0入0汤圆

 楼主| 发表于 2010-12-7 10:23:53 | 显示全部楼层
哦,原来是这样子。但是还是有个疑问,filelist_view在使用中不断浏览新的文件夹,内存一直上涨,中途容易死机呀

出0入0汤圆

发表于 2010-12-7 17:54:35 | 显示全部楼层
好的,谢谢反馈,我继续跟踪下。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 12:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表