[问题] 简单的程式就有 memory leak 了

楼主: HuangJC (吹笛牧童)   2014-04-12 06:05:48
连续天天加班到凌晨,总算专案快出一版了
是中点,不是终点
最近试着用 instrument 去抓 memory leak,却发现内存吃得离谱
不得已又写了个小程式,离开公司架构,小小的测试一下
写得很简单,就两个画面切来切去
1.开一个新程式
2.在 storyboard 上,摆一个 button
3.开一个新的 xib & UIViewController
4.新 xib 上也摆一个 button
5.coding
第一个 button,很简单的加载 xib 档,开始 MyViewController 而已
MyViewController* controller = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:nil];
[self presentViewController:controller animated:true completion:nil];
第二个 button,很简单的关闭 MyViewController, 回到原来的 controller
[self dismissViewControllerAnimated:true completion:nil];
程式够简单了,抄书的
然后在两个档 ( storyboard & xib ) 上,摆一大堆 button
这么做只是为了增加内存消耗,使结果明显
执行,快速的按 button1 , button2, 让画面切来切去
就这样竟然也有 memory leak
(不要只用 Xcode 的环境看,要打开 instrument 看,才明显)
程式显示,
[self presentViewController:controller animated:true completion:nil];
光这行都会吃内存
我可以理解的是,当我把 controller 传入 present view 函式,它就被保留了
难道我必需自己把它移出删除吗?
这样太不合理了!!
写一个 -(void)delloc 来验证,也会发觉在按下 close button 时有 delloc 啊
那内存占用又是为什么呢?
楼主: HuangJC (吹笛牧童)   2014-04-12 06:06:00
又天亮了,唉
作者: darktt (小朱)   2014-04-12 07:31:00
有dealloc不代表物件有正确的Release
作者: uranusjr (←這人是超級笨蛋)   2014-04-12 09:34:00
要嘛去聘一个会的人不然就用别的吧, 都给你们猜就饱了啊
作者: yuanruo (罪を憎んで人を憎まず)   2014-04-12 11:36:00
我在上面各摆了两百多个button 怎没leak ?
作者: abcdefghi   2014-04-12 23:34:00
在dealloc里用 CFGetRetainCount() 抓一下每个object的reference count, ARC也不是万能,有些情况要人脑分析.
作者: chchwy (mat)   2014-04-13 20:10:00
ARC是即时释放没错 没释放就是有地方没写好
楼主: HuangJC (吹笛牧童)   2014-04-14 02:23:00
真的很感谢你们;虽然不知多久后又要害你们失望可是陌生人能如此给机会谅解对方,你们都很了不起..
作者: Teferi (太费力)   2014-04-15 12:35:00
印象中上课的老师有提过,iOS就是内存满了才清除,机制也很像你所描述的方式原本的内存管理 release本来也是操作retain而已呀
楼主: HuangJC (吹笛牧童)   2014-04-15 16:26:00
http://tinyurl.com/monh5na 程式来了http://tinyurl.com/la87dej 执行结果,可以看到内存愈吃愈多
作者: darktt (小朱)   2014-04-15 20:51:00
你需要开放权限出来,我用我的mail请求权限了,开头是pippi的就是我的mail
楼主: HuangJC (吹笛牧童)   2014-04-15 21:40:00
有看到;不懂的是我以为我给的网址就是公开权限了那程式不就也无法下载?
作者: atst2 (atst2)   2014-04-15 23:09:00
1. 根本没有leak2. allocation表示的是现在在用的Memory,只要程式在跑就会有内存使用.3. Leak是看下面的leak字段有没有出现红线.
作者: leslielion   2014-04-22 23:31:00
Please implement unwinding storyboard segue

Links booklink

Contact Us: admin [ a t ] ucptt.com