iOS学霸笔记iOS TipsiOS

Xcode - 使用 Instruments 做 iOS 程序性

2016-09-07  本文已影响560人  态度哥

记录方便以后使用查看 ~

原文地址 尊重原作者

Instruments 简介

<br />
Instruments 是 Xcode 的一个工具集,为我们提供了强大的程序性能分析及测试能力。使用 Instruments 你可以做下面这些事:

可以看到 Instruments 功能很多,这里先介绍一下我们在开发中常用到的几种:CPU 性能测试、图形性能测试、内存性能测试。

虽然 Instruments 是 Xcode 的一个工具集,但是它是以一个独立的 App 的形式存在的,你可以在 Xcode -> Open Developer Tool -> Instruments中打开它。

CPU 性能

<br >
要看程序执行时间性能,主要有下面几步:

  1. 先在 Xcode 中对当前的项目做 Profile (Command + I):


    这时就会打开 Profiling Template 选项对话框:
  2. 选择 Time Profiler 这个模板,并点击 Choose 按钮。

  3. 进入 Instruments 后,选择正确的设备和应用程序:

  4. 点击红色按钮运行后,就能得到 CPU 性能的结果了:



    我们还能在时间轴面板里面去选择一段时间来查看该时间段里更为细节的 CPU 性能:



    同时在中间的导航条以及右下角的控制面板中,我们还可以通过不同的选项来选择数据展示的形式和维度。

    从这个结果中,我们可以看到不同的线程以及方法调用占用的时间,从而可以评估出 CPU 性能的瓶颈和优化方向。

  5. 除此之外,我们还能在 Instruments 选择使用 CountersActivity MonitorSystem TraceProfiling Template 对程序做 CPU 性能考量。

图形性能

关于图形性能方面,我们平时最关注的应该就是「帧率」这个概念了。在 Instruments 中,我们可以使用 Core Animation + Time Profiler 来评估图形性能。使用步骤如下:

  1. 同「CPU 占用性能测试」一样,先在 Xcode 中对当前的项目执行 Profile (Command + I),并在打开的对话框中选择 Core Animaiton这个模板:

  2. 进入 Instruments 后,选择正确的设备和应用程序。

  3. 点击红色按钮运行应用程序,随着我们操作 App 界面,就可以看到帧率的变化和数据了:



    在滑动屏幕时,帧率越高表示性能越好(接近或等于60),帧率过低则意味着屏幕可能会出现卡顿。

  4. 在右下角面板的 Display Settings 区域,我们可以看到多个 Debug Options

  1. 我们还可以选择使用 OpenGL ES AnalysisGPU Driver
    等模板来监测图形相关性能。

内存性能

<br />
Instruments 可以帮我们了解到应用程序使用内存的几个方面:

这里我们介绍下查找内存泄露的过程:

  1. 同「CPU 占用性能测试」一样,先在 Xcode 中对当前的项目执行 Profile (Command-I),并在打开的对话框中选择 Leaks
    这个模板:


  2. 进入 Instruments 后,选择正确的设备和应用程序。

  3. 点击红色按钮运行应用程序,我们可以看到如下界面:


  4. 在 Display Settings 中勾选Invert Call TreeHide System Libraries或其他选项可以过滤显示的数据。

  5. 在导航栏的筛选框中,我们可以输入关键字来筛选数据。


  6. 在实际使用中,我们进入一个页面后再退出,发现相关的内存分配没有清空,这时候就发生内存泄露了。我们查看更细节的调用信息,追踪到可能造成内存泄露的代码位置:


  7. 我们还可以使用 Activity MonitorAllocationsZombies 等模板来针对性地做内存监测。

相关链接

UITableView与UICollectionView的滚动性能优化
Instruments User Guide
iOS 性能优化:Instruments 工具的救命三招
xcode7 Instruments 视频教程(要翻墙)

强烈推荐:ios核心动画高级技巧

上一篇下一篇

猜你喜欢

热点阅读