MetricKit

MetricKit框架详细解析(二) —— Improving

2021-05-12  本文已影响0人  刀客传奇

版本记录

版本号 时间
V1.0 2021.05.12 星期三

前言

MetricKit由iOS13系统进引入,用来汇总和分析有关异常和崩溃诊断以及电源和性能指标的每个设备的报告。下面我们就一起来看下这个框架。感兴趣的可以看下面几篇文章。
1. MetricKit框架详细解析(一) —— 基本概览(一)

Overview

客户期望应用程序运行良好。 启动时间过长或输入响应缓慢的应用可能会向用户显示好像它无法正常工作或呆滞。 发出大量大型网络请求的应用可能会增加用户的数据费用并耗尽设备电池的电量。 这些行为中的任何一种都会使用户感到沮丧,并导致他们卸载应用程序。

通过科学地解决问题来计划和实施性能改进:

这些活动形成了一个持续改进的循环,如下图所示。

最大限度地减少资源使用使用户受益,并改善他们对您的应用程序的认知。这里有一些特殊的好处:

即使您的测量和观察结果显示没有紧迫的性能问题,还是建议您执行性能改进周期并进行预防性工作,以防止应用性能下降。


Gather Data About Your App's Current Performance

要全面了解您的应用的性能,请结合以下多种来源的信息:


Determine the Most Important Aspect to Improve

利用从观察中获得的信息以及对应用程序目的和预期使用模式的理解,发现最大的改进机会。某些性能问题与所调查的应用程序类型无关。启动时间长或对用户操纵界面的尝试无响应的应用程序会导致用户感到他们无法控制该应用程序。

另一方面,如果您在Metrics organizerMetricKit中看到的某个指标的最大值表示该应用程序已按预期使用,则该值可能并不表示要解决的最重要问题。例如,与背景音频播放相关的电源使用对于播客播放器来说可能不是问题,用户希望在后台播放。但是,如果您的应用是一个没有后台玩法的游戏,那么看到该指标占主导地位将是令人惊讶的。

看到该指标在指标报告中占主导地位,可能表明可以实现效率节省,但最有影响力的变化可能是使用了辅助服务,而这些辅助服务并不影响应用程序的主要功能。播客播放器可能很少需要使用粗粒度定位服务向听众推荐本地兴趣播客,但是与频繁跟踪用户的精确位置相关的高能耗可能表明需要进行更改。


Profile Your App

使用Instruments来配置您的应用,选择与您正在考虑的metric相关的配置文件模板:

通过在设备(而不是模拟器)上进行性能分析,可以获得更高保真度的测量结果。如果您收集的信息表明您的应用在特定类别或型号的设备上的性能不佳,请对该设备进行profile

查找导致性能问题的代码,并制定解决方案。请记住,您的更改可能未定位到特定的行或者函数,并且可能需要对应用程序进行重大的体系结构更改。例如,要减轻由于同步下载网络资源而导致的挂起,请引入后台操作来处理网络(请参阅Downloading Files in the Background),并在下载完成后在主线程上执行UI更新。


Make the Next Change

实施您根据调查计划的更改。 在Instruments中创建一个''after''配置文件,您可以将其与“before”配置文件进行比较,以确保您的更改带来了改善。 考虑在XCTest中编写性能测试,以防止将来性能下降,并记录该问题存在并已得到解决。


Compare the Changed Behavior with Your Original Data

在更改您的应用程序以解决所观察到的最重要的性能问题之后,请确认该更改是否具有预期的效果,并且改善的水平足够。 在XcodeMetrics organizer中使用每个应用版本的性能指标图,以查看更改是改善还是降低。

最后,确定您正在使用的指标仍然是最重要的,或者在性能改进周期的下一次迭代中数据是否指向另一个度量标准。


Additional Resources

这些文章,Xcode帮助主题和WWDC会话视频包含有关使用XcodeInstruments评估和改善应用程序性能的更多信息。


Performance Tools and Techniques


Energy Consumption


Topics

1. Memory

2. App Launch Time

3. Disk Writes

4. User Interface Hangs

后记

本篇主要讲述了Improving Your App's Performance,感兴趣的给个赞或者关注~~~

上一篇下一篇

猜你喜欢

热点阅读