Xcode(swift,OC)效能分析工具 Instruments — Time Profiler使用
关于 Time Profiler 我想说的是
事情是这样开始的,QA觉得画面很卡。
我的搭档跟我说:
于是开始学习这个测试工具。
Time Profiler
我们来看看 Time Profiler 可以为我们做什么事
1. 检视方法正在消耗CPU时间
time profile时间分析工具用来检测应用CPU的使用情况,可以看到应用程序中各个方法正在消耗CPU时间,使用大量CPU不一定是个问题。客户端中动画就对CPU依赖就非常高,动画本身也是非常苛刻且耗费资源较多的任务。
2. 检视程式码运行时间
Time Profiler帮助我们分析程式码的执行时间,找出导致程序变慢的原因,告诉我们“时间都去哪儿了?”。
3. 跟踪每一个线程的堆栈信息
Time Profiler分析原理:它按照固定的时间间隔来跟踪每一个线程的堆栈信息,通过统计比较时间间隔之间的堆栈状态,来推算某个方法执行了多久,并获得一个近似值。其实从根本上来说与我们的原始分析方法异曲同工,只不过其将各个方法消耗的时间统计起来。
使用须知
当点击Time Profiler应用程序开始运行后.就能获取到整个应用程序运行消耗时间分布和百分比.为了保证数据分析在统一使用场景真实行有如下点需要注意。
1. 应用程序性能分析的时候,一定要使用真机
在开始进行应用程序性能分析的时候,一定要使用真机,模拟器运行在Mac上,然而Mac上的CPU往往比iOS设备要快。相反,Mac上的GPU和iOS设备的完全不一样,模拟器不得已要在软件层面(CPU)模拟设备的GPU,这意味着GPU相关的操作在模拟器上运行的更慢,尤其是使用CAEAGLLayer来写一些OpenGL的代码时候. 这就导致模拟器性能数据和用户真机使用性能数据相去甚运。
2. 应用程序运行一定要Release版本 而不是Debug版本.
在发布环境打包的时候,编译器会引入一系列提高性能的优化,例如去掉调试符号或者移除并重新组织代码.另iOS引入一种"Watch Dog"[看门狗]机制.不同的场景下,“看门狗”会监测应用的性能。如果超出了该场景所规定的运行时间,“看门狗”就会强制终结这个应用的进程.开发者可以crashlog看到对应的日誌.但Xcode在调试配置下会禁用"Watch Dog".
开始使用
Xcode -> Open Developer Tool ->Instruments
选择 Time Profiller
眼前就是 Time Profiller
我们来简单使用一次
选择要测试的装置,要测试的专案,然后start record。
在APP启用时,可以看到 APP Life Cycle
Reference
参考文章连结