Instrument介绍
instrument是xcode上的测试工具,用于分析OS X和iOS代码,可以帮助我们在开发过程中检测内存,分析性能,帮助我们开发出更高效的代码。
在xcode中,我们可以通过工具栏中的Product->Profile(command + i)打开instrument界面,界面如下
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 应用的用户界面测试。
以Leaks为例,介绍工具使用
在xcode里面新建一个工程,创建两个模型类,一个叫person,一个叫Animal,在person类里面创建一个Animal的属性,在Animal类里面创建一个Person属性。在控制器的touchesBegan方法里面创建创建两个类的对象
|
|
通过快捷键command + i 唤起界面以后选择Leaks
左上角的红色圆圈点击一下就可以开始分析,程序运行起来以后,因为我们在touchesBegan里面写了错误代码,所以就会发现当程序刚起来的时候,第一次检测会显示一个绿色的对号,当点击了屏幕以后,会出现一个红色的叉号(PS:在界面的上面,我们能看到一个时间间隔的条,没10秒分一份,这个分析并不是实时的,他是每10秒就遍历一遍,如果有错误,就显示出来,所以点击的时候可能不会立马出现反应,要等待一个时间周期才能看到结果)
这个时候我们点击下面那一条分析的轨道,就能在最下面看到错误信息,查看错误信息的方式有三种,我们可以选择自己喜欢的方式进行查看
当我们在选择Call Tree的时候,为了更方便我们找到自己程序出错的具体位置,我们可以勾选一个选项,可以帮我们过滤掉系统调用的方法
对比上面两个图片,我们就可以发现,勾选以后,下面显示的信息就只剩下我们自己调用的方法,能更快的定位到错误。
当我们找到出错的地方只有,只要点击一下错误信息,这个时候,就会自动帮我们定位到错误代码的具体位置,
其他工具的使用方法类似,有时间可以都测试一下。