Instruments 壹 About Time Profiler

首先,dSYM是什么鬼?

程序编译后都会生成一个 dSYM 文件。
程序在执行中通过地址来调用方法函数。而 dSYM 文件里存储了函数地址映射,这样调用栈里的地址可以通过 dSYM 这个映射表能够获得具体函数的位置。一般都会用来处理 crash 时获取到的调用栈 .crash 文件将其符号化。


屏幕快照 2019-07-10 下午4.23.58.png

其次,说到Time Profiler。(要用release版本来profile)

时间分析工具,用来检测应用CPU的使用情况,可以看到应用程序各个方法消耗的CPU时间。
官方文档:https://help.apple.com/instruments/mac/current/#/dev03a7149d

  • time profile 是使用采样的方法来统计,而不是记录每一个方法调用的起始和结束,采样间隔是 1 ms。


    image.png

    上图中,main函数被采样 5 次, method3 没有被采样,但是确实执行了。
    不能区分长时间运行的任务和重复执行的任务。
    关注点是 CPU,而且不会记录所有操作。比如 method3 没有被采样。

  • 查看time profiler结果


    time profiler.jpeg
  1. weight 调用自身和子类花费的时间及占总时间的百分比
    不是实际耗费时间,而是该方法被采样的次数乘以采样间隔;
  2. self weight 自身花费的时间
    该函数没有调用其他函数时,被采样的次数乘以采样间隔;
  3. 如果weight = self weight,则说明该函数没有调用其它函数;
  4. Symbol name 被调用的函数名
image.png

image.png

你可能感兴趣的:(Instruments 壹 About Time Profiler)