iOS性能检测(2)时间消耗

前言

对于iOS上一文简单介绍内存,可是还少了写东西,我自己感觉对于内存和线程的联系不够多。特别是app 在多线程处理任务和实际业务逻辑的联系,是不够的,随着以后的项目的叠加,这方面我会更新。
这篇简单介绍自己在app 时间消耗的检测

工具

还是instrument 工具是


WX20170915-145338@2x.png

Time profile 具体使用

打开后

WX20170915-150934@2x.png

线程模式

对于all process 不能确定到底是哪个线程,可以点击右上角的具体线程分析
在时间轴上进行区域选择,这样就能判断出来,具体的时间耗时。

WX20170915-152906@2x.png

第三个就是,第一个是对于cpu 哪个内核的消耗情况

线程区域选择

WX20170915-155527@2x.png

说明是主线程是主要耗时的线程,然后耗时的时间大概是269ms,下一步就是找出具体的函数方法

集中显示代码的耗时问题

WX20170915-150943@2x.png

1)Separate by Thread:按线程分开进行分析。容易找出消耗资源的问题线程,特别是对于主线程,因为主线程要处理和渲染所有的接口数据及UI视图,当主线程受到阻塞性操作,一定会造成程序的卡顿,或停止响应。
(2)Invert Call Tree:反向显示调用树。把调用层级最深的方法显示在最上面,容易找到最耗时的操作。
(3)Hide System Libraries:隐藏缺失的符号。把干扰信息屏蔽掉,即把列表中因为系统架构,或DSYM文件缺失造成奇怪的十六进制的数值。
(4)Flatten Recursion:拼合递归。把同一递归函数产生的多条堆栈合并为一条。
(5)Top Functions:找到最耗时的函数或方法。

不过,我在选择过程中,遇到个不大不小的问题,就是选择投票functions 的时候 instrument 崩溃。

寻找代码

对于自己代码中weight的比例 和self weight的时长,过大的要审查,是不是有复制的逻辑,或者大量的内存申请,大的图片缓存
一般如果网络请求,可以看看,是不是网络架构和网络请求的效率和json 解析的方式是不是最优。
这里的每一个细化,可能是选择第三方的依据,何必重复自己来造轮子呢。
例子


WX20170915-161909@2x.png

这里显然比较耗时的是tabbar 的设置,而不是他上班的loc 的定位,也不是网络请求。
问题确定来,下一步就是相关问题解决了。根据不同的项目,不同的责任人来进行代码的优化。
一看一个10% 不少,是不是可以剩下来,还要看业务逻辑是不是允许这样优化,一切的优化建立在产品需求的要求基础上。

具体方法寻找

WX20170915-162619@2x.png

图片设置在button 上的问题,更加确定和tabbar 也是没有关系。

利用imageWithContentsOfFile 设置图片 就解决了这个加载耗时的问题,为啥tabbar 对于小图片如此敏感呢???


WX20170915-163717@2x.png

这里的性能

时间消耗,直接影响是app 的流畅和使用的感受,作为客户单研发,这个还是尤为重要,可是当在优化app的时候,优化多少,哪里优化,哪里有优化的必要,还有谁来优化哪里,这些都需要图形化数据来体现,这个工具太棒来。

以后的性能

对于第三方的性能我们还有很多引用,不过哪个更好,这个还是性能说的算,如 YYModel ,JsonModel,等,解析对象时候,哪个更快,说时候,如果项目不够复杂,真是很难感觉到。

参考文献

官方文档
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Instrument-TimeProfiler.html
简书推荐
http://www.jianshu.com/p/68387876ebcc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容