Xcode(swift,OC)效能分析工具

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

参考文章连结


<<:  零信任的特徵

>>:  C# 入门笔记04(继承)

Day7. 依点成形,创造物件 - RigidBody(中)

暨昨天介绍了物体的基本建立,我们今天来到中篇,没错,中篇後面还会有一个下篇,因为笔者写着写着发现篇幅...

【Day8】 Introduction – while & for

紧接着,我们就要来介绍 while、for 回圈啦!但是在介绍之前,要先提到一些基本但常用的运算子。...

Day7-三论标头档与Proxy Class

昨天有讲一个古老的设计:利用标头档将类别介面与实作拆开并预先编译用以隐藏实作细节但还是不够安全隐密,...

[DAY-25] 不埨头衔 发挥领导领导力

人类或许是一种合作的物种 BUT 要让每个人都齐心协力 往共同目标前进 组织必须知道要朝哪里走 也...

(Day 19) 原型与建构式

函式建构式建立原型 前面几篇有提到,可以使用函示建构式、或是 ES 6 来建立原型,今天就来介绍使用...