使用Instruments工具测试CPU与常见对CPU占用过高的操作

使用Xcode自带的Instruments工具,检测CPU

Instruments

打开Instruments:Xcode -> Product -> Profile 或者 cmd + i
启动后如下:
Instruments.png
其中常用的有用来检测内存泄露的Leaks和查看CPU消耗情况的Time Profiler。下面介绍查看CPU使用情况的Time Profiler

Time Profier

  1. 打开Time Profier

Timer profile 9.0.png

要查看每个函数的CPU性能,直接双击函数就可以定位到代码了。
函数前面的数值是所用时间,可以根据这个时间判断是是否需要优化。

有了上面的基础知识就可以对App的CPU消耗情况进行实时检测了。

常见的对CPU消耗过高的操作

  • 加载图片
    两种不同方式在相同时间内的CPU消耗情况对比:
    Paste_Image.png
    屏幕快照 2016-03-13 下午6.25.34.png
    并且,使用5s真机测试以下代码40s后Memory过高造成闪退,但是使用imageWithContentOfFile数分钟后没有出现闪退现象
    1
    2
    3
    4
    while (1)
        {
            [UIImage imageNamed:@"58_58"];
        }
  • 初始化对象
    • 正则表达式
    • 时间戳
      屏幕快照 2016-03-13 下午6.37.50.png

在需要多次使用的地方尽量只初始化一次,然后多次使用

  • 视图布局
    1
    2
    3
    4
    /-(void)layoutSubviews
    {
    // do something
    }
    1
    2
    [view setNeedsLayout];
    [view layoutIfNeeded];
    这些函数尽量不要使用。每对view进行一次重新布局就会对CPU增加很多消耗。
  • 绘制图层
    需要用到
    1
    [layout rendInContext:]
    的地方尽量换成iOS7以后新增的方法:
    1
    [view drawViewHierachyInRect:]
    性能同样可以获得很大的提升

到公众号【iOS开发栈】学习更多SwiftUI、iOS开发相关内容。回复“博客”免费获取各大互联网公司面试题。