借助 Android GPU 检查器 (AGI),您可以分析 Android 应用的特定帧,并使用该帧对应用的 GPU 使用情况进行深入分析。与仅使用系统性能分析相比,此性能分析数据可让您更深入地了解应用的 GPU 使用情况。
要使用 AGI 进行帧性能分析,首先会收集轨迹和其他性能数据,然后测量并显示这些数据以进行分析。
可用的帧性能分析数据包括:
Vulkan API 调用
帧缓冲区内容
渲染的网格绘制调用
命令的 RAM 和 GPU 内存值
渲染事件的 GPU 性能数据
流水线数据
渲染状态数据
纹理和着色器资源
开始使用
AGI 快速入门介绍了如何设置 AGI、捕获帧配置文件数据,然后打开生成的跟踪文件。下一部分将详细介绍配置选项。
性能分析选项
本部分介绍了拍摄帧配置文件时可用的主要选项。
Graphics API 选项
Graphics API 选项表示应用使用的图形 API。这些选项可在 Capture System Profile 对话框的 Type 列表中找到。 以下是可用的选项:
- Vulkan:适用于直接使用 Vulkan API 的应用。
- OpenGL on ANGLE:适用于使用 OpenGL ES 的应用。
AGI 会直接跟踪 Vulkan 命令。不过,如果您的应用使用 OpenGL ES,AGI 会使用自定义 ANGLE build 将命令转换为 Vulkan 命令,然后再跟踪应用。
其他参数
Additional Arguments 字段用于将额外的标志传递给 adb am start-activity
命令,该命令将发送到您的设备,以在分析期间启动应用。如需了解详情,请参阅 adb 命令。
开始时间和时长选项
在开始和时长部分,您可以指定 AGI 如何捕获要分析的帧。提供的选项如下:
开始:AGI 会捕获从应用启动到第一个渲染帧结束的所有命令。
Manual:按跟踪对话框中的按钮即可手动捕获帧。
时间:AGI 会在给定的秒数过后自动捕获一帧。
Frame:AGI 会自动拍摄指定的帧。
跟踪选项
跟踪选项部分包含用于配置跟踪标志的设置。可用的设置如下:
停用缓冲:捕获数据时在设备上停用内存缓冲。此选项对于调试应用崩溃非常有用,因为它可以确保序列化到崩溃之前的所有跟踪数据。不过,在进行性能剖析时,这会略微增加 AGI 的开销。
包含不受支持的扩展程序:包含设备上的 AGI 不支持的扩展程序。如果您的应用使用 AGI 不支持的扩展程序,您可能会在重放轨迹时遇到不希望出现的行为,包括轻微的错误或崩溃。浏览支持的扩展程序列表。
清除软件包数据:使用
pm clear
adb 命令请求设备在启动前清除应用的用户数据。
输出设置
Output 部分包含跟踪文件存储设置,例如:
指定用于存储跟踪文件的目录。
修改为跟踪文件自动生成的文件名。
查看结果
当您打开包含帧性能分析数据的轨迹文件时,AGI 会在帧性能分析器界面中显示这些数据以进行分析。
帧性能分析器是一个 AGI 组件,用于管理用于分析单个帧的界面和插桩。帧性能分析器在以下界面元素中显示数据:
Commands 窗格:Vulkan API 调用。
Framebuffer 窗格:帧缓冲区内容。
Geometry 窗格:渲染网格绘制调用。
Memory 窗格:命令的 RAM 和 GPU 内存值。
“性能”窗格:渲染事件的 GPU 性能数据。
Pipeline 窗格:流水线内容。
着色器窗格:着色器内容。
State 窗格:已提交命令的渲染状态。
Textures 窗格:与命令关联的纹理资源列表。
Texture 窗格:所选纹理资源的内容。
Report 窗格:分析错误的列表。
分析结果
以下主题介绍了如何使用 AGI 分析帧性能分析数据: