系统性能分析概览

借助 Android GPU 检查器 (AGI),您可以为您的 Android 应用执行系统性能分析,其中包括各种跟踪选项和 GPU 性能测量值。与 Android Studio 性能分析工具相比,AGI 将这些功能中的许多功能整合到了一个工具中,并且可以提供更深入的 GPU 覆盖率和分析。可用的系统性能分析数据包括:

  • 应用轨迹数据,包括 ATrace 标记
  • CPU 和进程调度数据
  • GPU 性能信息,例如计数器、activity 和生命周期数据
  • Vulkan API 调用的跟踪数据
  • 内存使用情况统计信息
  • 电池用量统计信息

系统性能分析器是一个 AGI 组件,可管理用于对多个应用帧进行系统性能分析的界面和插桩。它是基于 Perfetto 跟踪系统构建的。如需了解用于分析各个应用帧的 AGI 组件,请参阅帧性能分析器概览。

开始使用

AGI 快速入门介绍了如何设置 AGI、捕获系统配置文件,然后打开生成的跟踪文件。下一部分将详细介绍配置选项。

性能分析选项

本部分介绍了对应用进行性能分析时可用的主要选项。

应用设置

Application 设置用于识别要在系统性能分析期间运行和跟踪的 Android 应用。选择要在系统性能分析期间跟踪的 Android 应用是可选操作,但建议您这样做,因为如果没有这样做,生成的跟踪文件将不包含应用的 ATrace 标记和 GPU 活动。

跟踪选项

跟踪选项指定要收集的性能剖析数据。点击配置按钮将显示可用的数据源。

在分析系统性能时,为了最大限度地降低对 Android 设备性能的影响,我们建议您将跟踪记录 Duration 设置为超过一分钟,减少选择的数据源数量。但是,对于不到一分钟的跟踪记录,您可以选择所有数据源,且影响最小。

CPU 选项

CPU 选项支持通过 ftrace 收集 CPU 和进程调度数据。您可以查看每个 CPU 核心上正在运行的进程和线程。您还可以启用这些选项:

  • 频率和空闲状态:收集 CPU 核心频率和空闲状态更改事件,使您能够检查如何根据负载增加或减少 CPU。
  • 调度链 / 延迟:收集有关线程调度延迟和抢占的其他线程状态数据。
  • 线程切片:收集进程视图中的 ATrace 标记。

GPU 选项

借助 GPU 选项,您可以分析应用的 GPU 使用情况,例如收集 GPU 频率和内存使用情况数据。如需收集此类数据,您必须在“应用”设置中指定要跟踪的应用。选项包括:

  • 计数器:收集 GPU 计数器样本。这些数据用于确定 GPU 的繁忙程度并找出瓶颈,因此我们建议您配置这些设置。

    计数器因硬件而异。例如,样本收集的最低频率(轮询率)可能因计数器类型而异。如需了解受支持的计数器,请参阅 GPU 性能计数器

  • Frame Lifecycle:跟踪 SufaceFlinger 事件,该事件有助于确定帧缓冲区如何在应用、合成器和窗口管理器中移动。通过这些事件,您可以找到丢失的应用帧,并确定渲染流水线中的延迟来源。

  • 渲染阶段切片:收集有助于确定应用对 GPU 的使用情况的数据。

Vulkan 选项

您可以通过 Vulkan 选项跟踪 Vulkan API 调用,然后可按函数类型启用这些调用。您可以使用此数据确定 Vulkan API 调用的 CPU 开销。跟踪记录会记录每个函数调用的时长,当您分析 Vulkan 事件轨道中的数据时,该时长会显示在应用的线程切片中。

其他选项

其他系统性能分析选项包括:

  • 内存:收集全局和每个进程的基本内存使用情况统计信息。

  • 电池:收集电池统计信息。您可以粗略估算应用的耗电量。

  • 强制跟踪到设备上的文件:系统在捕获跟踪记录时,通常会通过 USB 流式传输跟踪数据,这样可以减少开销并支持长时间跟踪记录。不过,如果您遇到 USB 延迟问题或分析数据丢失,您可以选择此选项,将轨迹文件保存在设备上,AGI 会在跟踪结束后下载该文件。这需要设备的内部存储空间有足够的空间来存储跟踪文件。

高级模式

切换到高级模式链接可启动高级配置模式,在该模式下,您可以手动修改存储性能分析选项的 Pefetto 跟踪记录配置

查看和分析结果

当您打开包含系统性能分析数据的轨迹文件时,AGI 会在系统性能分析器界面中显示这些数据以进行分析。如需了解如何查看数据,请参阅查看系统配置文件

以下主题介绍了如何使用 AGI 分析系统性能分析数据: