使用Instruments检测内存泄漏
使用Instruments检测内存泄漏
王素年 发表于6个月前
使用Instruments检测内存泄漏
  • 发表于 6个月前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

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


此时Leaks已经跑起来了。

 

或者

 

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

 

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

 

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

 

 

或者

 

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

 

 

 

2.打开后界面如下:

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

共有 人打赏支持
粉丝 1
博文 70
码字总数 43900
×
王素年
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: