社区
高通开发者论坛
帖子详情
Brew内存管理问题
xu_puma
2009-08-10 09:32:23
各位好,我在每进入一个应用之前打印当前的内存情况,包括可用内存,可用申请的最大内存块,发现
有可用申请的最大内存块减少,可用使用的内存也减少,可能产生的内存碎片,想请教各位大侠,如何整理
Brew的内存碎片呢?谢谢
...全文
2148
12
打赏
收藏
Brew内存管理问题
各位好,我在每进入一个应用之前打印当前的内存情况,包括可用内存,可用申请的最大内存块,发现 有可用申请的最大内存块减少,可用使用的内存也减少,可能产生的内存碎片,想请教各位大侠,如何整理 Brew的内存碎片呢?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hhygcy
2009-08-28
打赏
举报
回复
[Quote=引用 11 楼 xu_puma 的回复:]
引用 10 楼 chenmeimei_8899 的回复:
内存减少肯定是内存泄露,内存泄露也不难查,在模拟器或者真机上都可以很开的查出来。
在模拟上进入你要查内存泄露的应用,按挂机键退出,在output windows中就可以看到内存泄露的.c及对应的函数,在真机上用QXDM的用同样的方法也可以看到这些信息。
内存减少肯定不一定是内存泄露的啊,有的是后台应用,第一次进去就减少些,如果后台应用多的话,占用的内存就多,现在我的最大可用内存是3M多,开始申请最大的内存块是2M多,进入一些应用后,内存减少,最后最大申请内存块的只有1M不多了。可是各种跟踪显示无内存泄露!
[/Quote]
有些概念要搞清楚, brewAppManager这个东西是一个进程(Process),那些brew的应用程序只是一个DLL.
在关闭你的程序的时候,你程序分配的内存应该程序本身自觉删除,如果你注册的releasaApp函数没有把自己的内存或者资源删除干净的话,在brewAppManager这个进程没有关闭之前是不会被操作系统回收掉的。
你现在的情况,刚开始3M,进入其他程序之后,在进入你的程序,内存只有2M了,有可能其他的程序正在泄露内存。你可以尝试的情况是重启机器(确保brewAppManager关闭)重新再测试你的可用内存,看看到底是那个应用导致了内存泄露
xu_puma
2009-08-28
打赏
举报
回复
[Quote=引用 10 楼 chenmeimei_8899 的回复:]
内存减少肯定是内存泄露,内存泄露也不难查,在模拟器或者真机上都可以很开的查出来。
在模拟上进入你要查内存泄露的应用,按挂机键退出,在output windows中就可以看到内存泄露的.c及对应的函数,在真机上用QXDM的用同样的方法也可以看到这些信息。
[/Quote]
内存减少肯定不一定是内存泄露的啊,有的是后台应用,第一次进去就减少些,如果后台应用多的话,占用的内存就多,现在我的最大可用内存是3M多,开始申请最大的内存块是2M多,进入一些应用后,内存减少,最后最大申请内存块的只有1M不多了。可是各种跟踪显示无内存泄露!
FLYUP_CHEN
2009-08-24
打赏
举报
回复
内存减少肯定是内存泄露,内存泄露也不难查,在模拟器或者真机上都可以很开的查出来。
在模拟上进入你要查内存泄露的应用,按挂机键退出,在output windows中就可以看到内存泄露的.c及对应的函数,在真机上用QXDM的用同样的方法也可以看到这些信息。
lhy_hetty
2009-08-23
打赏
举报
回复
打印所有MALLOC的内存地址,调试时注意看
收索bpoint 1看看是哪分配的
alex_goacross
2009-08-21
打赏
举报
回复
内存泄露的问题,在Brew里边是很头疼的。
处理的不好,会造成机器重启,更严重会出现死机的情况。
个人经验:
1。MALLOC,FREE配对使用。
2。接口实例不用记得释放。
3。Extension使用,一定显示的NULL。
4。IDIB,IBitmap使用完记得释放。
半吊子全栈工匠
2009-08-19
打赏
举报
回复
Purify可以帮助查一下内存泄露
半吊子全栈工匠
2009-08-18
打赏
举报
回复
的确如此,要分清内存泄露,内存碎片会由系统处理的
kingfenggg
2009-08-18
打赏
举报
回复
内存减少不是碎片的原因,极可能是内存泄露,注意指针的使用,如果是C的话看一看你的MALLOC与FREE是不是成对出现的,导致动态分配的内存未释放导致内存减少。
liujie1008_cn
2009-08-18
打赏
举报
回复
内存泄露,多查查,积累积累点经验就晓得了
猫腻儿姐姐
2009-08-18
打赏
举报
回复
内存泄露的问题不好查,只能在写代码的时候加倍留心。
不过你可以在程序写好后,不打任何断点,点调试不执行,把代码功能测试一边,然后再输出窗口看有没有内存泄露的信息。
tx040316
2009-08-13
打赏
举报
回复
如果是内存碎片你就不用管,系统会处理,如果是内存泄露的话你就要自己去查了。
hhygcy
2009-08-11
打赏
举报
回复
如果内存减少了 很可能是出现了内存泄露
不知道你现在是用C写的程序还是C++
如果是C++的话,一般会弄重载一下new/delete操作符来侦测一下
brew
内存调试.doc
很好的
brew
内存泄漏的说明,大家可以参考一下。
BREW
手机游戏的
内存管理
BREW
手机游戏的
内存管理
BREW
Memory Leak Checker
一个在模拟器上定位
BREW
应用程序内存泄露位置的工具,可以给出内存泄露位置的调用栈信息(包括MALLOC、REALLOC分配的内存,也能定位到调用ISHELL_CreateInstance的位置)
深入
brew
开发
brew
进阶资料
深入
brew
开发,很好的参考进阶资料。对于学习C语言也很有一定的帮助。
BREW
Applet管理机制
BREW
的Applet分为静态的Applet和动态的Applet。静态的Applet是通过静态编译,将本地的Applet和手机平台软件,操作系统编译在一起下载到手机上的Applet。而动态Applet只需要编译成单个.mod文件即可。
高通开发者论坛
2,851
社区成员
5,751
社区内容
发帖
与我相关
我的任务
高通开发者论坛
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
复制链接
扫一扫
分享
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能
物联网
机器学习
技术论坛(原bbs)
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章