搜索性能指标的工具
XCTest Metrics
- 衡量性能的 measure block
这个是随着xcode提供的一个单元测试的工具,可以让你直接通过一个measure block来获取性能的指标,可以在UT阶段,就可以了解各个功能对性能产生的影响
MetricKit
- 搜集电池和性能指标和诊断的框架
可以直接在app里面提供相关的指标,可以帮助你了解app在实际运行起来是什么情况
Xcode Metrics Organizer
- 在Xcode 中电池、性能和I/O的聚合指标
它汇集了一组性能指标,以非常直观的图表的形式。可以方便的了解,我们的app在整个市场范围内对实际用户来说运行起来是什么样子的
能耗和性能API
- 通过 APP Store Connect API 程序化获取指标和诊断信息
开发阶段
XCTest 适合在开发测试阶段进行使用
MetricKit 适合在Bate和公开发布后, 在实际使用的用户中进行使用收集相关数据
Xcode Metrics Organizer
APP Store Connect API
可以帮助大家从实际用户那里去了解性能相关的信息
所有这些放在一起我们有各种各样的方式,来量化开发过程中的各阶段对电量和性能相关的信息
性能指标概述
我们先来看一下这些指标里包涵什么样的信息, 我们的量化指标分为两大类一个是电量、另一个是性能
电池
性能
电池相关指标
对于电池,我们提供了一系列相关指标,来帮助我们量化对电力消耗的影响,其中包括运算处理
- 运算处理
- 定位
- 显示
- 网络
- 配件
- 多媒体
- 相机
运算处理
- CPU时间, GPU时间等等
- 利用这些量化指标理解工作负荷
- CPU空转
- 意料之外的渲染
- 比较功能的算法效率
我们先从运算处理指标开始,它对应的是CPU和GPU的消耗时间,你可以理解为是app的一个工作负荷,
利用这个指标我们可以发现CPU和GPU的额外消耗
比较功能的算法效率
定位
- 累计使用时间、后台时间等等
- 通过这些指标来了解定位的使用量
- 发现定位未及时关闭的情况
- 确保使用正确的定位精度
接下来是定位指标
这个指标帮助我们了解定位服务的使用量,在不同的定位精度下,跟踪位置的时间。
定位是我们app常见的电量大户,你可能一直开着定位而实际上你又不需要,或者可能开着比你实际需要更高的定位精度
这些都会导致你消耗更多不必要的电量
显示
- 平均像素亮度
- OLED 显示屏上UI的颜色会影响能耗
- 颜色越亮 = 能耗越高(高APL)
- 颜色越暗 = 能耗越低(低APL)
接下来是显示指标,苹果提供了平均像素亮度这样的指标
在OLED 显示屏,UI显示的颜色会影响能耗
我们可以通过平均像素亮度,APL来衡量这个指标
一个颜色越浅,消耗的电量就越高,我们可以说它的APL比较高
如果UI使用的颜色比较深,平均像素亮度比较低,能耗就越少
如果你渲染的频率比较高,也会消耗比较高的电量
网络显示
- 上传和下载量、连接状态等等
- 尽可能优化网络使用
- 验证合理的上传和下载
- 了解弱连接状态的影响
最后我们要提到的是网络指标
每当你app通过蜂窝或者是wifi连接网络就会消耗更多的电量,它会被记录到网络指标,希望大家尽可能的优化网络的使用,这些指标会对应上传和下载量的计数,可以验证我们这些量是否合理
还可以监测网络连通性和连接状态对重试的影响
连通性对电量的消耗也会有很大的影响
以上这些就电池电量相关的指标
通过些可以量化电量的消耗