iOS图解Leaks工具使用

对于Leaks工具而言,只是为了帮助开发者能更好的开发出一款稳定性能的APP。仅仅是一个检测的工具,具体为什么在ARC下很多开发者还是会造成如此多的内存泄露,这里不做评判。下面图解一下Instruments中Leaks该如何检测我们的内存问题,希望能帮助提高新人开发者的代码质量。

这里我随意创建一个工程,书写了一段两个Array对象循环引用导致的内存泄露,我们通过工具来检测一下

- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *arr1 = @[@"1", @"2"].mutableCopy;
    NSMutableArray *arr2 = @[@"23", @4].mutableCopy;

    [arr1 addObject:arr2];
    [arr2 addObject:arr1];

}
运行你的程序,点击程序内存使用情况如下图:

这里写图片描述

点击 Profile in Instruments 按钮,弹出如下提示

这里写图片描述

点击 Restart 重新开始,则Leaks会自动启动如下

这里写图片描述

到这里Leaks就开始检测了,如果检测到内存泄露就会红X提示

这里写图片描述

选择Call Tree,再隐藏掉系统库,如果检测到泄露,我们可以立即暂停检测来修复

这里写图片描述

当然,也可以检测一段时间后暂停,然后通过以下方式来定位某个泄露区域的代码实现

这里写图片描述

这里写图片描述

这里写图片描述

双击进入到泄露的代码位置,我们可以通过一系列的设置达到自己想查看的效果

这里写图片描述

点击图中的Xcode图标可以直接定位的此类的代码位置,便于我们修改

这里写图片描述

到这里我们只检测出了泄露的代码,具体如何修改,我们还得有一定的MRC基础才可以,我们必须了解内存管理的原则及原理。
这里有几个内存管理比较优秀的博客链接可供大家参考下:

http://chuansong.me/n/461440328826
http://ios.jobbole.com/92903/

假设我们修改好此处的内存泄露问题,我们就可以重新运行检测了

这里写图片描述

这里写图片描述

当然,如果你不知道问题的原因,你也可以保存下你的检测过程,请教您旁边的大神同事

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sailip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值