Track 介绍

什么是 Track

在 Trace UI 中,Track 是展示 Trace 数据的基本单元。每一条 Track 代表一类事件或数据流,如线程的活动、CPU 频率、内存变化、关键 Timing 等。通过 Track,开发者可以清晰地在时间轴上查看各类事件的发生顺序、持续时间、线程分布,进而分析应用的行为和性能瓶颈。 Track 以横条的方式展示在 Trace UI 中,每个横条表示一个 Track,在 Track 的左侧会显示 Track 的名称。

Trace Track Overview

常用 Track 介绍

进程 Track

进程 Track 通常以进程名和进程 id 命名(iOS 和 Mac 的 Trace 以 Process {pid} 命名)。在 Lynx Trace 中,通常只包含一个进程 Track,作为所有其他 Track 的顶层容器。

Process Track

线程 Track

线程 Track 通常以线程名和线程 id 命名。在 Lynx Trace 中包含 UI 线程Engine 线程后台线程等多个线程 Track,下面介绍一些常见的线程 Track,开发者可以清晰地在时间轴上查看各类事件的发生顺序、持续时间、线程分布,进而分析应用的行为和性能瓶颈。

UI 线程 Track

UI 线程 Track 展示应用 UI 线程上的所有事件和任务,如页面渲染、UI 操作、主循环等。分析 UI 线程 Track 可帮助定位 UI 卡顿、渲染阻塞等性能问题。在 Lynx Trace 中,一个进程只包含一个 UI 线程 Track。

默认最顶部的线程 Track 为 UI 线程 Track。

  • Android 和 Harmony 系统的 UI 线程 Track 以 进程名 pid(main thread) 命名。
  • iOS 和 Mac 系统的 Trace 线程 id 最小的线程 Track 为 UI 线程 Track。
UI Thread Track

后台线程 Track

后台线程 Track 展示 BTS 执行逻辑,通过该 Track 可分析 BTS 调度、执行与耗时。

INFO

历史原因,后台线程名为 Lynx_JS。

Background Thread Track

事件上报 Track

事件上报 Track 展示应用内部 Lynx 事件上报过程,有助于定位事件是否上报等问题。

Event Report Track

Performance Issue Track

Performance Issue Track 用于标记性能异常、瓶颈点等关键事件。开发者可通过该 Track 快速定位性能热点和异常行为。

Performance Issue Track

关键时间点 Track

关键时间点 Track 展示关键时间点(如首帧渲染完成、真实首帧渲染完成等),便于开发者定位关键时间点。

Timing Track

原生模块 Track

原生模块 Track 展示原生模块调用的过程,包括 JS 与 Native 的通信、数据转换等,可用于分析原生模块链路与性能瓶颈。

NativeModule Track

CPU 频率 Track

CPU 频率 Track 以折线图方式展示 CPU 频率随时间的变化情况,帮助开发者分析高负载场景下 CPU 资源的利用和变化。

CPU Frequency Track

Memory Track

Memory Track 展示 Lynx 页面内存占用随时间的变化趋势,每个 Memory Track 代表一个 Lynx 页面的内存变化。通过该 Track 可分析内存泄漏、资源峰值、异常增长等问题。

Memory Track

Track 常用操作

Pin Track

Pin Track 功能可以将某个 Track 固定在 Trace 视图的顶部,便于对比和持续关注关键线程或事件。

Pin To Top

Delete Track

Delete Track 功能允许开发者临时隐藏不关注的 Track,简化界面,只保留需要分析的关键 Track,提升分析效率。被删除的 Track 可通过刷新 Trace 页面重新显示。

Delete Track

更多资源

想了解 Trace Track 及其高级功能的更详细指南,请参考官方 Perfetto 文档:perfetto-ui

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。