instruments(01)-Time Profiler(时间分析器)

关于instruments总共分为19篇文章对它每一个功能进行介绍。

首先给大家介绍一下什么是instruments,作为一个程序员,编程并不难,难得是如何优化你的代码,提高app的性能。而instruments就是这样一个工具,优化应用程序的性能,寻找代码的bug,分析代码的利弊。

下面我们通过循环打印来对时间分析器这个功能进行讲解

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    [self OCprint];

    [self Cprint];

}

//循环打印100次

- (void)OCprint{

    for (int i = 0; i < 100; i++) {

    NSLog(@"%d",i);

}

}

//循环打印50次

- (void)Cprint{

     for (int i = 0; i < 50; i++) {

    NSLog(@"%d",i);

 }

}

接下来我们只需要按住command + i 就会弹出以下界面

instruments(01)-Time Profiler(时间分析器)_第1张图片
时间分析器

点击红色箭头指向的图标,就会出现以下界面

instruments(01)-Time Profiler(时间分析器)_第2张图片

1:暂停/开始按钮

2:记录按钮,用来收集数据

3:记录时间

4:显示收集到的数据

5:显示收集到的数据展示形式

6:代码时间占比的详细功能面板

7:功能面板的显示设置

点击记录按钮出现如下界面


instruments(01)-Time Profiler(时间分析器)_第3张图片

Separate by Thread: 每个线程分开考虑。

Invert Call Tree:从上倒下跟踪堆栈。如FuncA{FunB{FunC}} 勾选此项后堆栈以C->B-A 把调用层级最深的C显示在最外面

Hide System Libraries: 隐藏系统的代码

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

Top Functions: 显示一个函数的总时间。例如函数A内部调用B,那么显示的时间为A实现的时间加B实现的时间。

勾选上以下几项,只显示我们自己写的代码所花费的时间

instruments(01)-Time Profiler(时间分析器)_第4张图片

其中main函数花了MainThread的54.8%时间,OCprint方法花费了13ms,Cprint方法花费了4ms。

如果觉得这样还不清晰,可以双击对应的方法,会展示对应的代码所花费的时间(x代表毫秒)或者时间比。

你可能感兴趣的:(instruments(01)-Time Profiler(时间分析器))