Time Profiler(时间分析器)--初识篇

本文介绍了Time Profiler的基本原理,如何使用Time Profiler进行性能测试,包括面板的各个部分及其功能,如录制按钮、执行计时器、路径、详情面板和选项设置。同时强调了测试时需要注意使用真机而非模拟器,并确保Demo运行在生产配置下,以获取准确的性能数据。相关官方文档和中文翻译资源也一并提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Time Profiler原理

Time Profiler instrument工具按照固定的时间间隔来跟踪每一个线程的堆栈信息,通过统计比较时间间隔之间的堆栈状态,来推算某个方法执行了多久,并获得一个近似值。

面板各部分介绍

  1. 打开Time Profiler
    这里写图片描述
  2. 打开后空白界面如下:
    这里写图片描述
    • 1:录制按钮。点击后,time profiler将自动启动待测Demo,开始录制。
    • 2:执行计时器。记录了当前测试共执行了多长时间,以及共执行了多少次测试。(开始记录后,点击录制按钮,结束测试。再次点击录制按钮,开始新的一次测试,前一次测试结果显示在下方,这时执行计时器显示为 Run 2 of 2)
      这里写图片描述
    • 3:路径(track)。录制出的图像类似下图:
      这里写图片描述
    • 4:详情面板。在这里可以找到耗时最长的方法。
    • 5:选项面板。
      • Separate by State:通过状态分类来查看哪些方法耗时最多。
      • Separate by Thread:通过线程分类来查看哪些方法耗时最多。
      • Invert Call Tree:调用树倒返过来,将习惯性的从根向下一级一级的显示,如选上就会返过来从最底层调用向上一级一级的显示。如果想要查看那个方法调用为最深时使用会更方便些。
      • Hide System Libraries:选上它只会展示与应用有关的符号信息,一般情况下我们只关心自己写的代码所需的耗时,而不关心系统库的CPU耗时。
      • Flatten Recursion:选上它会将调用栈里递归函数作为一个入口。
      • Top Functions:选上它会将最耗时的函数降序排列,而这种耗时是累加的,比如A调用了B,那么A的耗时数是会包含B的耗时数。

测试注意点

  1. 使用真机进行测试。
    • 在开始进行应用程序性能分析的时候,一定要使用真机,不能使用运行在Mac上的模拟器。因为Mac上的CPU往往比iOS设备要快,并且Mac上的GPU和iOS设备的完全不一样,模拟器不得已要在软件层面(CPU)模拟设备的GPU,这意味着GPU相关的操作在模拟器上运行的更慢,尤其是使用CAEAGLLayer来写一些OpenGL的代码时候. 这就导致模拟器性能数据和用户真机使用性能数据相去甚远。
  2. Demo运行一定要是生产配置。
    • 在发布环境打包的时候,编译器会引入一系列提高性能的优化,例如去掉调试符号或者移除并重新组织代码.另iOS引入一种”Watch Dog”[看门狗]机制.不同的场景下,“看门狗”会监测应用的性能。如果超出了该场景所规定的运行时间,“看门狗”就会强制终结这个应用的进程。开发者可以crashlog看到对应的日志.但Xcode在调试配置下会禁用”Watch Dog”。

相关文档

  1. 官方文档:https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/
  2. 中文翻译:可百度搜索“Instrument 用户指南”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值