INSTRUMENTS调试工具的使用(三)
版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.06.21 |
前言
我们在做app的时候,不是做完功能就结束了,很多时候是需要进行检查和优化的,而xcode自带了一个很好的检查工具,可以检测内存泄漏。还可以查看哪一个方法比较耗时。还可以检测离屏渲染等等,随后的几篇我们就说一下这个工具的使用。感兴趣的可以看这几篇。
1.INSTRUMENTS调试工具的使用(一)
2.INSTRUMENTS调试工具的使用(二)
这一篇就先说一下跟踪进程的选择以及立即和延迟显示收集数据。
六、记录跟踪数据
部分 instruments 工具允许跟踪所有系统进程,其他要求你只能为一个进程记录数据。部分 instruments 工具甚至希望你从 Instruments 应用里面启动进程以便它们可以在进程执行之前收集数据。
选择要跟踪的进程
我们从工具栏的target可以选择跟踪的进程,如下图所示。
![](https://img.haomeiwen.com/i3691932/0da9a2ab686fe9a1.png)
从上可以看出,我们可以选择全部进程,还可以选择其他某一个特定的进程,同样,这里我也可以连接我的项目进行跟踪。通过chooseTarget我们可以选择任意一个进程。
1.跟踪所有进程All Processes
这里需要注意的是,只有当你 Instruments 面板上面的所有 instruments 工具都支持的时候才可用,可以看下图。
![](http://upload-images.jianshu.io/upload_images/3691932-5350756b172eae3b.png)
这里可见,Activity Monitor是可以跟踪所有进程的。
2.跟踪某一个特定的进程
我现在开着微信写着博客,那么我就跟踪一下已经运行的谷歌浏览器吧,如下图所示。
![](http://upload-images.jianshu.io/upload_images/3691932-7fbd493c590e0211.png)
3.跟踪一个未运行的进程
这个方法类似2,可以在choose target选择一个未运行的进程。
七、立即和延迟显示收集数据
1.立即显示收集数据
Immediatedisplay(立即显示),这个是instruments默认的收集数据方式,在测量的期间,Instruments应用在跟踪面板和详细面板立即显示收集的数据。Instruments 工具栏上面的时间控制器同样显示 了你开始记录数据多长时间了。在这个模式下,Instruments 影响系统性能,因 为 UI 要持续的更新。这个模式是 Instruments 应用的默认模式。为了选择立即 显示,选择 File > Record Options > Immediate Display,上面跟踪微信就是立即收集数据。
![](http://upload-images.jianshu.io/upload_images/3691932-9c6da4ab6846125f.png)
![](http://upload-images.jianshu.io/upload_images/3691932-b582b823a56bb5c9.png)
这里Deferred就是延时显示收集数据模式。
2.延时显示收集数据
具体如何转变上边图示已经很清楚了,就不多说了,下面我就说一下这个有什么好处吧。Instruments 应用延迟显示收集的数据直到记录 停止。在测量期间,Instruments 对系统的影响非常小。当你停止记录的时候, Instruments 应用开始处理并显示收集的数据。延迟显示是一个很重要的特性, 当应用程序对性能很敏感的时候。为了选择延迟显示,选择 File > Record Options > Deferred Display,记录模式随文档持久性的。
在记录期间,如果你想要你的程序继续运行,但是又不想让 Instruments 应用收集数据,单击你的跟踪文档里面的 Pause 按钮。Instruments 应用暂时停止收集数据, 但是并没有停止当前正在执行的记录。单击 Resume 按钮会让 Instruments 应用继续 在当前记录时间里面收集数据。所以暂停和继续会在你的跟踪面板上面产生一个数据 空白区域。
首先我选择延迟30s显示收集数据,如下图所示。
![](http://upload-images.jianshu.io/upload_images/3691932-5d7eb4545cd54f0e.png)
那么0~30开始跟踪数据,页面如下显示。
![](http://upload-images.jianshu.io/upload_images/3691932-ed584bf566202793.png)
30s过去了,可以显示跟踪数据了。如下图所示。
![](http://upload-images.jianshu.io/upload_images/3691932-9c15e5abfcda8e1a.png)
后记
未完,待续,明天更精彩~~
![](http://upload-images.jianshu.io/upload_images/3691932-ce0fcef3804edcd6.jpg)