性能数据分析是 Android Vitals 的一项新功能,专为游戏开发者以及使用原生代码开发应用的其他开发者而设计。性能数据分析功能由 Android Performance Tuner 提供支持,是一款全新插件,可助力 Android Vitals 为游戏开发者提供更好的服务。
本文介绍了 Android Performance Tuner 和性能数据分析功能的核心概念,以及它们的基础计算方式:
核心概念
保真度参数和质量级别
应用的保真度参数会影响游戏的性能和图形保真度,例如网格细节层次、纹理分辨率和抗锯齿方法。它们可以是连续值(例如 0-100%)、二进制值(是/否)或其他类别的值。
质量级别是一组针对保真度参数的预定义的值。借助质量级别,您可以定义参数组合,从而在稳定的帧速率下,向部分用户提供可接受的保真度水平。并非所有可能的参数组合都能提供有意义的用户体验。
如何设置保真度参数和质量级别应用的保真度参数及其质量级别需要在集成 Android Performance Tuner 期间定义。在集成过程中,您最多可定义 15 个质量级别,保真度参数则不限数量。级别按保真度水平升序排序,其中级别 1 是最低的保真度级别。
您可以在 Play 管理中心内查看质量级别和保真度参数(监控和改进 > Android Vitals > 概览 > 选择检查质量级别,但此类数值均为只读状态。如需更改参数,您需要发布更新;有关详情,请参阅相关集成指南。
质量级别用于标记工作时段,以便您可以确定设备型号所运行的质量级别是否过高或过低。
保真度参数用于确定如何将每个用户设备对应到相应的质量级别。
重要提示:如果您的保真度参数(和质量级别)没有准确反映您的应用在用户设备上的设置,系统将无法确定您的工作时段对应哪个预定义的质量级别。此类工作时段的质量级别会显示为“未知”。在质量级别“未知”情况下发现的问题很难排查,因为这些问题可能涉及很多不同的保真度级别。如果出现上述问题,我们建议您检查相应集成情况。
如需了解有关质量级别的更多信息,包括用户自定义的质量级别,请转到排查 Android Performance Tuner 问题和常见问题解答。
注释
注释即您的游戏或应用内场景上的“标签”,会提供与游戏在给定帧中的情况相关的背景信息。注释的结构如下所示:
- 注释类型:注释值
- 例如:“角色”:“主角”
注意:一个帧可以有多个注释。
如何设置注释注释需要在集成过程中定义。如需更改注释,您需要发布更新;有关详情,请参阅集成指南中的相关部分。
注释有何用途
借助注释,您可以了解游戏中的特定场景是否会引发问题或存在优化机会。若想使问题得以适当地细化,您需要定义足够细化的注释。
目标帧速率和目标帧时间
目标帧速率可以作为基准,用于衡量您的游戏在所有设备型号上的帧时间情况。为此,系统会将目标帧速率转换为目标帧时间,并应用公差来定义慢帧的阈值。
帧速率是一项指标,单位为“每秒帧数”(fps)。帧时间的测量单位为“毫秒”。两者之间的关系如下方简单公式所示:
- 帧时间(毫秒)= 1000/帧速率 (fps)
目前,您可以选择以下某个目标帧速率:
目标帧速率 (fps) |
目标帧时间(毫秒) |
30 |
33.333 |
60 |
16.667 |
120 |
8.333 |
如果您不确定选择哪个目标帧速率,请先从 30fps 开始。这是适合很多游戏的基本帧速率。您可以随时更改目标帧速率。请注意,这不会改变您的基础数据,仅会改变您的数据分析和指标。
慢帧阈值和快帧阈值
系统会根据您的目标帧速率来确定相应阈值,以定义各项数据分析和帧指标:
- 慢帧阈值 = 目标帧时间 + 公差
- 快帧阈值 = 比目标帧时间短 25%(提供一定优化空间)
对于给定的目标帧速率,阈值如下所示:
目标帧速率 (fps) |
目标帧时间(毫秒) |
慢帧阈值 (毫秒)(SFT) |
快帧阈值(毫秒)(FFT) |
30 |
33.333 |
35.37 |
25.0 |
60 |
16.667 |
18.54 |
12.5 |
120 |
8.333 |
10.12 |
6.25 |
为了提供稳定且富有实用价值的数据分析,系统会对帧时间应用公差,以便使测量结果更加准确,并确保只显示用户能够发现的问题,而不显示用户察觉不到的偏差。
25% 的优化空间是判断设备是否存在优化机会的依据,但它仅起到指南作用,表示设备可能存在优化机会,并非绝对保证。我们始终建议,在提高设备对应的质量级别之前,先进行深入研究并展开测试:即使设备有优化空间,其优化空间可能不足以支持设备在一致的帧速率下运行更高质量级别的游戏。
Android Performance Tuner 的计算机制
了解 Android Performance Tuner 的基本计算机制有助于您充分利用数据分析。
测量的帧时间
在对应用的众多帧的帧时间进行汇总时,我们会报告第 90 个百分位的帧时间。这个值是指帧速率位列前 90% 的帧的最长帧时间。
目前,90% 的阈值是固定阈值,无法更改。
百分位值与平均值相比的优势
良好的用户体验要求应用在整个工作时段保持稳定一致的帧速率。平均值在衡量一致性方面没有参考价值,因为快帧和慢帧的数据影响可能会相互抵消。使用第 90 个百分位的帧速率作为指标,可以反映出绝大多数帧的情况。
帧时间分桶系统以直方图分桶形式(而非连续变量形式)收集和报告帧时间,这样可最大限度地减少从用户设备发送的数据量。报告的帧时间是其所归入分桶中的最大值。
因此,报告的帧时间是按照特定值(而非连续值)来分类的。
默认分桶经过精心配置,细化程度合理,适用于在 30fps、60fps 和 120fps 的目标帧速率下进行问题排查。此外,默认分桶的范围较小,可确保不会夸大慢帧的情况。
慢帧指标和快帧指标
系统通过将各个帧与帧阈值进行比较来确定相应帧应计为慢帧还是快帧:
- 如果某个帧的帧时间长于慢帧阈值 (SFT),则将该帧计为慢帧
- 如果某个帧的帧时间短于快帧阈值 (FFT),则将该帧计为快帧
系统通常仅会针对特定问题或优化机会而计算帧指标。示例:
- 在运行质量级别为 4 的游戏时,型号为 X 的设备上的慢帧数量及所占百分比
- 在运行各个质量级别的游戏时,注释 Y 上的快帧数量及所占百分比
- 规格为 Z 的设备上慢帧和快帧各占的百分比
注意:在这方面有一个例外情况,也就是“概览”摘要中显示的慢帧指标,该指标会针对所有帧进行衡量。
不对称性慢帧和快帧并非彼此相反:它们具有不同的阈值和标准。这意味着性能不佳的设备型号或注释上仍然可能会出现快帧,反之,性能优越的设备型号或注释上仍然可能会出现慢帧:
条件 |
呈现速度缓慢的帧占比 (%) |
呈现速度快的帧占比 (%) |
|
问题 |
90% 的帧时间 > SFT |
> 10%(根据定义) |
0-90% 之间的任意值 |
优化建议 |
90% 的帧时间 < FFT |
0-10% 之间的任意值 |
> 90%(根据定义) |
注意:有时,系统会同时提供慢帧指标和快帧指标,以便您了解与问题或优化机会相关的更多背景信息。
问题和优化机会
根据发现的问题和优化机会,您可以针对帧时间指标水平采取改进措施。如果设备型号或注释(如上述定义)无法始终如一地达到帧时间目标,可能会出现问题。优化机会是指设备型号或注释始终超出您的帧时间目标,并且性能的优化空间充足,能够实现保真度提升。
为了发现问题和优化机会,我们会将第 90 个百分位的帧时间分别与慢帧 (SFT) 和快帧 (FFT) 的阈值进行比较。这些阈值根据您的目标帧时间计算得出:
分析数据类型 |
定义 |
计算方法 |
问题:
|
“至少有 10% 的帧的呈现时间未达到帧时间目标” |
第 90 个百分位的帧时间 > SFT |
优化机会:
|
“至少有 90% 的帧的呈现时间大幅短于帧时间目标” |
第 90 个百分位的帧时间 < FFT |
系统仅在以下条件下确定问题和优化机会:
- 设备型号 x 质量级别
- 注释 x 质量级别
这样您就可以探查问题或优化机会。例如:
- 在质量级别 4 层面上,设备型号 X 的问题 => 探查设备型号 X
- 在所有质量级别层面上,注释 Y 的优化机会 => 探查注释 Y
问题和优化机会并非对立。问题比优化机会更容易被发现,并且对设备型号或注释而言,没有问题与存在优化机会这两种情况之间有很大差别。
某个注释在一些质量级别层面上可能是问题,而在其他质量级别层面上却可能是优化机会。对于设备型号而言也是如此,但一个设备型号对应多个质量级别属于极端情况。
问题和优化机会均与目标帧速率相关联。如果目标帧速率改变,那么问题和优化机会也会随之变化。但是,基础帧时间数据不会改变。