iOS开发经验fish的iOSiOS OC 学习手册

Xcode之Instruments使用

2017-01-03  本文已影响2420人  紫金飞侠雷

打开Instruments:

或者

打开之后会看到如下界面

在这个界面上我们关注的主要有三个

Time Profiler:分析代码的执行时间,找出导致程序变慢的原因。要从xcode的product>profile中打开Instruments才能看到自己代码的运行时间分析Allocations:监测内存使用 / 分配情况 迅速膨胀的内存可以很快让程序毙命,所以要多加防范。Leaks:找到引发内存泄漏的起点当你进入一个UIViewController页面并返回的时候发现内存一直在增加,那可能会发生了内存泄露,可以试试看UIViewController的dealloc有没有运行,如果没运行可能就是发生了内存泄露。

具体上述三种各个效果作用可以参照博客: https://blog.leancloud.cn/2835/

下面主要说下 Leaks的使用:

这是打开之后选择自己的手机以及手机上正在运行的项目(1的旁边)

1、录控按钮。中间的红色按钮将停止与启动它被点击时,应用程序目前正在分析。注意这实际上是停止和启动应用程序,而不是暂停它。

2、行定时器和运行导航,定时器显示APP已经运行了多长时间,箭头之间是可以移动的。如果停止,然后使用录制按钮重新启动应用程序,这将开始一个新的运行。显示屏便会显示“run2 of 2”,你可以回到第一次运行的数据,首先你停止当前运行,然后按下左箭头回去。

3、运行轨道

4、详细地面板。它显示了你正在使用的仪器的主要信息,这是使用频率最高的部门

5、选项面板

Separate by Thread: 每个线程应该分开考虑。只有这样你才能揪出那些大量占用CPU的"重"线程  

 Invert Call Tree: 从上倒下跟踪堆栈,这意味着你看到的表中的方法,将已从第0帧开始取样,这通常你是想要的,只有这样你才能看到CPU中话费时间最深的方法.也就是说FuncA{FunB{FunC}} 勾选此项后堆栈以C->B-A 把调用层级最深的C显示在最外面 

Hide System Libraries: 勾选此项你会显示你app的代码,这是非常有用的. 因为通常你只关心cpu花在自己代码上的时间不是系统上的

Flatten Recursion: 递归函数, 每个堆栈跟踪一个条目

定位红色柱子的Leaks,下面有个"田"字方格,点开,选中Call Tree,显示如下图界面:

下面就是最关键的一步,在这个界面的右下角有若干选框,选中Invert Call Tree 和Hide System Libraries,(红圈范围内)显示如下:

然后双击小人头像部分就能定位到咱们的项目代码中,如下图

如果没有出现小人头像部分,全是定位到地址符号,(也不要惊慌)这个时候设置下

选择第二个就行

上一篇下一篇

猜你喜欢

热点阅读