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 就会弹出以下界面

时间分析器

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

1:暂停/开始按钮

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

3:记录时间

4:显示收集到的数据

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

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

7:功能面板的显示设置

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


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

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

Hide System Libraries: 隐藏系统的代码

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,204评论 25 708
  • 学习如何使用【Xcode Instruments】来进行错误排查和优化代码。 更新提示:这篇教程由James Fr...
    汝阴龙阅读 1,303评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,209评论 30 471
  • 生活给我们有馈赠,也有荆棘。从来不怨,命运之错,不怕旅途多坎坷,此为生活之真谛! 人生的道路上会遇到或是好人和坏人...
    雪梅落峰阅读 363评论 2 3
  • 读书学习也许是实现阶层流动最便捷 最朴实 最大众确又很有效的方式 学历是敲门砖 人生舞台的入场券 但更重要的是 眼...
    刺客233阅读 175评论 0 0