系统性能分析概览

借助 Android GPU 检查器 (AGI),您可以执行系统性能分析,其中包含各种跟踪选项和 Android 应用的 GPU 性能测量。与 Android Studio 性能分析工具相比,AGI 将许多功能整合到一款工具中,然后提供更深入的 GPU 覆盖范围和分析。可用的系统分析数据包括以下内容:

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

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

开始使用

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

性能分析选项

本部分介绍了分析应用时可用的主要选项。

应用设置

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

轨迹选项

轨迹选项用于指定要收集的分析数据。配置按钮会显示可用的数据源。

为了尽量减少剖析系统时对 Android 设备性能的影响,如果您将轨迹时长设置为超过 1 分钟,建议您选择较少的数据源。不过,对于时长不到一分钟的轨迹,您可以选择所有数据源,而影响极小。

CPU 选项

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

  • 频率和空闲状态:收集 CPU 核心频率和空闲状态变化事件,以便您检查 CPU 如何根据负载进行扩缩。
  • 调度链 / 延迟时间:收集有关线程调度延迟和抢占的其他线程状态数据。
  • 线程切片:在进程视图中收集 ATrace 标记。

GPU 选项

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

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

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

  • 帧生命周期:跟踪 SurfaceFlinger 事件,这有助于确定帧缓冲区在应用、合成器和窗口管理器中的移动方式。借助这些事件,您可以找到错过的应用帧,并确定渲染流水线中的延迟来源。

  • Renderstage slices:收集有助于确定应用如何使用 GPU 的数据。

Vulkan 选项

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

其他选项

其他系统分析选项包括:

  • 内存:收集基本的内存用量统计信息,包括全局统计信息和每个进程的统计信息。

  • 电池:收集电池统计信息。这有助于您大致估算应用的耗电量。

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

高级模式

点击切换到高级模式链接会启动高级配置模式,您可以在该模式下手动修改存储分析选项的 Perfetto 轨迹配置

查看和分析结果

当您打开包含系统分析数据的跟踪文件时,AGI 会在系统分析器界面中显示该数据以供分析。如需了解如何查看数据,请参阅查看系统配置文件

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