一、如何查看耗时情况
1、查看Pre-Main()的耗时
查看Pre-Mian()耗时
- 直接打开Xcode,找到
Product
->Scheme
->Edit Scheme
->Run
->Arguments
->Environment Variables
->DYLD_PRINT_STATISTICS
设置为YES
。- 通过快捷键:
com
+shift
+,
运行查看,你就能看到pre-Main()的耗时日志
耗时日志2、查看Main()函数后的耗时
查看Main函数之后的耗时,目前有两种方案:
- 方案一:定时抓取主线程方法的调用堆栈,计算一段时间里的方法耗时。(Xcode中的Time Profiler就是使用的这种的方法)
- 方案二:对objc_msgSend方法进行hook,来得到所有方法的耗时。
使用方案一的TimeProfiler查看Main函数后耗时,方法如图:
步骤1 步骤2 步骤3 步骤4步骤5注:
1 . Separate by State:按状态分开,分析数据。
2 . Separate by Thread:按线程分开,分析数据。可找出严重消耗资源的线程,特别对于处理和渲染UI的主线程,一旦主线程受到阻塞,一定会造成App的卡顿。
3 . Invert Call Tree:反向显示调用树。把调用层级最深的方法显示在最上面。
4 . Hide System Libraries:隐藏系统级的干扰信息。
5 . Flatten Recursion:合并递归。
6 . Top Functions:置顶耗时方法。
注:
1、选择耗时的方法
2、点击右键
3、选择Reveal in Xcode
4、找到对应比较耗时的类中,进行对应维护。
相关文案:
https://mp.weixin.qq.com/s/WPsBfkroAEFVHu2OJ5pwKg?scene=25#wechat_redirect
网友评论