使用Instruments检测内存泄漏

instrument能做的事情:
1.Instruments是用于动态调追踪和分析OS X和iOS的代码的性能分析和测试工具;
2.Instruments支持多线程的调试;
3.可以用Instruments去录制和回放,图形用户界面的操作过程
4.可将录制的图形界面操作和Instruments保存为模板,供以后访问使用。
5.追踪代码中的(甚至是那些难以复制的)问题;
6.分析程序的性能;
7.实现程序的自动化测试;
8..部分实现程序的压力测试;
9.执行系统级别的通用问题追踪调试;
10.使你对程序的内部运行过程更加了解。

 

instrument中常用的工具:

Leaks(泄漏):一般的查看内存使用情况,检查泄漏的内存,并提供了所有活动的分配和泄漏模块的类对象分配统计信息以及内存地址历史记录;
Time Profiler(时间探查):执行对系统的CPU上运行的进程低负载时间为基础采样。
Allocations(内存分配):跟踪过程的匿名虚拟内存和堆的对象提供类名和可选保留/释放历史;
Activity Monitor(活动监视器):显示器处理的CPU、内存和网络使用情况统计;
Blank(空模板):创建一个空的模板,可以从Library库中添加其他模板;
Automation(自动化):这个模板执行它模拟用户界面交互为IOS机应用从instrument启动的脚本;
Core Data:监测读取、缓存未命中、保存等操作,能直观显示是否保存次数远超实际需要。
Cocoa Layout:观察约束变化,找出布局代码的问题所在。
Network:跟踪 TCP / IP和 UDP / IP 连接。
Automations:创建和编辑测试脚本来自动化 iOS 应用的用户界面测试。

 

Instruments最常用的三大类(主要介绍下面这三个的操作):
 Leaks:找到引发内存泄漏的起点
 Time Profiler:分析代码的执行时间,找出导致程序变慢的原因。
 Allocations:监测内存使用/分配情况

 

 

使用 Instruments 的 Leaks工具

1.打开

1.首先我们选中Xcode先把模拟器(command + R)运行起来
2.然后我们再选中Xcode,按快捷键(command + control + i)运行起来,

3.然后出现如下界面,选择Leaks

173052_Dads_2472425.png
此时Leaks已经跑起来了。

 

或者

 

可以 点击Xcode的“调试导航”(如图一)

171817_0xPy_2472425.png

 

然后选中“Memory”,再点击右侧的 “Profile in Instruments”,(如图二)

171818_iCrA_2472425.png

 

会自动打开Instruments。这时候会弹出来一个对话框 。选择“Transfer” 这种方式打开,(如图三)

172046_4ZFr_2472425.png

 

 

或者

 

通过Xcode --> Open Developer Tool -->instruments --leaks 的方式来打开)(如图0)

172620_JVtr_2472425.png

 

 

 

2.打开后界面如下:

173500_htLN_2472425.png

Leaks是动态监测,所以我们需要手动操作APP,进行测试,一边操作APP,一边观察Leaks的变化,

点击红点Record(红色圆圈按钮)运行。
观察,我们可以发现在Leaks里面有一个红色X,这说明了我们的APP存在内存泄露
点击暂停,点击其中一个,然后我们开始分析。(也可继续检测,当多个时暂停,一次处理了多个)


下面就是定位修改了,此时选中有红色叉的Leaks,下面有个"田"字方格,点开,选中Call Tree。
6.下面就是最关键的一步,在这个界面的右下角有若干选框,选中Invert Call Tree 和Hide System Libraries,(红圈范围内)(如果不知道在那个位置请接着往下看)
7.定位
在详情面板选中显示的若干条中的一条,双击,会自动跳到内存泄露代码处,然后点击右上角 Xcode 图标进行修改。

http://www.jianshu.com/p/92cd90e65d4c

http://www.jianshu.com/p/e77d9cb5d0d4

转载于:https://my.oschina.net/u/2472425/blog/1204594

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值