记录并直观呈现轨迹

本页介绍了如何使用 Fuchsia 跟踪系统在 Fuchsia 设备上记录和直观呈现跟踪记录。

前提条件

许多现有的 Fuchsia 组件已注册为跟踪记录提供方,其跟踪记录数据通常可以充分概览系统。因此,如果您只需要记录一般跟踪记录(例如,在 bug 报告中添加详细信息),则可以继续阅读以下部分。但是,如果您想从特定组件收集其他自定义跟踪记录事件,则需要先完成以下任务:

记录跟踪记录

如需从宿主机在 Fuchsia 设备上记录跟踪记录,请运行以下命令:

ffx trace start --duration <SECONDS>

此命令会使用默认设置启动跟踪记录,以捕获目标设备的一般概览。

跟踪记录会持续指定的时间(如果未指定时间,则会持续到按下 ENTER 键为止)。跟踪记录完成后,跟踪记录数据会自动保存到当前目录中的trace.fxt文件中(可以通过指定--output标志来更改此目录;例如,ffx trace start --output <FILE_PATH>)。如需直观呈现此文件中存储的跟踪记录结果,请参阅下面的直观呈现跟踪记录部分。

直观呈现跟踪记录

Fuchsia 跟踪记录格式 (.fxt) 是 Fuchsia 的 二进制格式,可直接对原始跟踪记录数据进行编码。如需直观呈现 .fxt 跟踪记录文件,您可以使用 Perfetto 查看器

您可以使用以下任一方法直观呈现跟踪记录结果:

  • 上传到 GCS: 记录时传递 --upload 标志(例如, ffx trace start --upload)。跟踪记录完成后,跟踪记录会上传到 Google Cloud Storage (GCS),并且输出中会显示 Perfetto 跟踪记录查看器 的直接链接。
  • 手动打开本地文件
    1. 在网络浏览器中访问 Perfetto 查看器 网站。
    2. 点击导航栏中的打开跟踪记录文件
    3. 从宿主机中选择您的 .fxt 文件。

借助此查看器,您还可以使用 SQL 查询跟踪记录数据。如需了解实用的 查询方法和自动分类工具,请参阅 使用 PerfettoSQL 和 fx perf-analyze 分析跟踪记录

类别

借助类别,您可以控制要查看的事件。例如:

  • 跟踪记录包含所有默认类别以及“cat”:
  ffx trace start --categories '#default,cat'
  • 跟踪记录不包含任何默认类别,仅包含调度器和线程/进程数据:
  ffx trace start --categories "kernel:sched,kernel:meta"

实用类别

kernel:sched + kernel:meta

详细概览每个 CPU 上运行的内容

kernel:sched 信息

kernel:ipc

为每个 FIDL 调用发出一个事件,并使用流将它们连接起来

内核:IPC 信息

kernel:syscall

为每个系统调用发出一个事件

gfx 信息

gfx

查看帧时序细分

gfx 信息