查看系统性能分析

在Android GPU Inspector (AGI)中,您可以在系统性能分析器UI中查看和分析系统性能分析。在您对系统进行性能分析并在AGI中打开跟踪文件后,系统性能分析器将在时间轴上显示性能分析数据,并带有可扩展的项目,这些项目显示其他详细信息。

系统性能分析器UI的主要元素包括以下内容

  • 工具栏

  • 时间轴:指示跟踪事件的时间跨度。

  • 跟踪窗格:显示与时间轴相关的性能分析数据。

  • 详细信息窗格:一个可扩展的窗格,显示有关所选项目的详细信息。

性能分析数据

在跟踪文件中,性能分析数据存储在称为跟踪事件的时间戳事件中。跟踪事件由各种类型的切片和计数器组成。例如,CPU跟踪事件包括调度切片,而GPU跟踪事件包括GPU性能计数器和线程切片。

在系统性能分析器UI中,跟踪窗格包含以行(称为跟踪)显示的跟踪事件,这些跟踪基于时间轴。相同类型的跟踪显示在跟踪组中。

GPU跟踪

GPU跟踪显示GPU性能分析信息。这些是主要的GPU跟踪类型

  1. GPU队列跟踪:应用程序的GPU活动。

  2. GPU计数器跟踪:以定期间隔采样的GPU的硬件计数器。

  3. Vulkan事件跟踪:与Vulkan API相关的事件。

  4. SurfaceFlinger跟踪:SurfaceFlinger事件,指示图形缓冲区如何通过系统移动。

GPU队列跟踪

GPU可以根据在跟踪期间运行的硬件队列数量拥有一个或多个GPU队列跟踪。GPU队列跟踪包含表示应用程序使用的GPU工作期间和类型的活动切片。

活动切片包含您可以查看的元数据,例如启动工作的Vulkan命令缓冲区、渲染通道和帧缓冲区。这些对象的Vulkan句柄在详细信息窗格中显示如下

  • VkCommandBuffer
  • VkRenderPass
  • VkFrameBuffer

您可以使用VK_EXT_debug_utils扩展中的vkSetDebugUtilsObjectNameEXT函数或VK_EXT_debug_marker扩展中的vkDebugMarkerSetObjectNameEXT函数,为这些对象提供用户友好的名称,以便您可以轻松地在跟踪中识别它们及其句柄。AGI实现了这两个扩展,并在跟踪时可供您的应用程序使用。

GPU计数器跟踪

GPU计数器跟踪以定期间隔对GPU性能计数器的值进行图形化显示。图表显示样本之间GPU底层硬件组件性能的变化。您可以使用此信息来识别GPU使用中的瓶颈。

可用的计数器是特定于硬件的。您可以将鼠标悬停在跟踪名称上以查看每个计数器的简要说明。有关详细信息,请参阅GPU性能计数器

Vulkan事件跟踪

Vulkan事件跟踪显示在跟踪期间记录的Vulkan API事件。跟踪事件类型主要是队列提交事件(vkQueueSubmit调用)。如果您单击队列提交事件,AGI将突出显示与该调用关联的GPU活动切片。您可以使用此数据检查由Vulkan API调用排队的异步工作以及CPU和GPU之间的延迟。

SurfaceFlinger跟踪

SurfaceFlinger跟踪显示图形缓冲区(应用程序的交换链渲染目标)的生命周期,因为它们通过系统进行,直到显示为止。事件按缓冲区聚合,以便更容易跟踪获取和发布缓冲区所需的开销和延迟。

与性能分析数据交互

本节介绍如何在系统性能分析器UI中与性能分析数据交互。

固定

您可以使用跟踪和跟踪组的固定按钮来固定它们。

折叠和展开

某些跟踪和所有跟踪组都是可折叠的。某些跟踪组在折叠时会显示摘要。例如,当折叠时,CPU跟踪组会在图形中显示总体的CPU使用率。

缩放

AGI根据缩放级别聚合性能分析数据。当您第一次打开跟踪文件时,系统性能分析器UI将以最大缩小级别显示整个性能分析。您可以通过查找感兴趣的区域,然后查看详细信息来检查性能分析。

当您在不同的跟踪类型上放大和缩小时,它们会显示不同类型的性能分析数据。例如,CPU跟踪最初显示每个线程的时间切片,然后在放大时最终切换到显示CPU核心利用率数据。

查看详细信息

您可以通过选择轨迹面板中的项目在详细信息窗格中显示详细的元数据。如果某个项目可选,则将鼠标悬停在其上会将光标更改为指针,然后您可以选择该项目。

选择时间范围

您可以选择一个时间范围,这使您可以比较来自不同轨迹的跟踪事件。为此,请启用**计时**模式,然后拖动以选择一个范围。范围之外的所有内容都将变暗,并且会显示范围的持续时间。

您还可以通过按M来选择所选切片的时间范围。然后,您可以滚动浏览其他轨迹以识别来自同一时间段的事件。

您可以使用WASD键或通过滚动和平移来导航轨迹面板中的项目。系统分析器使用与Systrace相同的键盘和鼠标快捷键。可用的快捷键包括以下内容

  • WS,或Ctrl++Ctrl+-进行缩放。
  • AD,或箭头左右平移视图。
  • QE,或箭头滚动轨迹。
  • 按住shift可以提高导航的移动速度。
  • Ctrl+滚动缩放选定的项目。
  • F缩放选定的项目。
  • Z+0重置并完全缩小。
  • V如果跟踪中可用,则切换突出显示 VSync。
  • M通过选择其时间范围来标记当前选择。
  • H?显示键盘和鼠标快捷键备忘单。

工具栏包含用于在导航模式之间切换的按钮,这些按钮选择在您拖动轨迹面板中的项目时执行的操作。您还可以通过按1234键来选择以下导航模式

  1. **选择**:拖动以框选项目。
  2. **平移**:拖动以平移和滚动轨迹。这是默认模式。
  3. **缩放**:垂直拖动以缩放项目。
  4. **计时**:拖动以选择时间范围。

您还可以将导航模式与这些修饰键一起使用

  • Shift+拖动以框选项目。
  • Space+拖动以平移和滚动。
  • Ctrl+滚动以缩放。
  • Ctrl+拖动以选择时间范围。