google/perfetto
GitHub: google/perfetto
Google 开源的生产级全栈追踪与性能分析平台,支持从 Android/Chromium 到 Linux 内核的深度观测与 SQL 编程式分析。
Stars: 5632 | Forks: 710
# Perfetto - 系统性能分析、应用追踪与 Trace 分析
Perfetto 是一套开源的 SDK、daemon 和工具集,它利用
**tracing** 帮助开发者理解复杂系统的行为,
并定位客户端和嵌入式系统上的功能及性能问题根源。
它是一款生产级工具,是 **Android 操作系统** 和 **Chromium 浏览器** 的默认 tracing 系统。

## 核心组件
Perfetto 不是一个单一的工具,而是一组协同工作的组件集合:
- **高性能 tracing daemon:** 用于将单台机器上多个进程的 tracing 信息捕获到一个统一的 trace 文件中。
- **低开销 tracing SDK:** 一个 C++17 库,用于在应用程序中进行直接的用户空间到用户空间的计时和状态变化追踪。
- **广泛的操作系统级探针:** 用于在 Android 和 Linux 上捕获系统范围的上下文(例如调度状态、CPU 频率、内存分析、调用栈采样)。
- **基于浏览器的 UI:** 一个功能强大、完全本地化的 UI,用于在时间轴上可视化和探索大型(数 GB)trace 文件。它适用于所有主流浏览器,无需安装,并且可以打开来自其他工具的 trace 文件。
- **基于 SQL 的分析库:** 一个强大的引擎,允许你使用 SQL 以编程方式查询 trace 数据,从而自动化分析并提取自定义指标。
## 为什么使用 Perfetto?
Perfetto 旨在成为适用于广泛用例的通用且强大的 tracing 系统。
- **面向 Android 应用与平台开发者:** 调试并定位功能和性能问题的根源,如启动缓慢、丢帧(卡顿)、动画故障、低内存终止(low memory kills)和 ANR。通过 heap dump 和 profile 分析 Java/Kotlin 和原生 C++ 的内存使用情况。
- **面向 C/C++ 开发者(Linux、macOS、Windows):** 使用 [Tracing SDK](docs/instrumentation/tracing-sdk.md) 通过自定义 trace 点来检测你的应用程序,以了解其执行流程,发现性能瓶颈,并调试复杂行为。在 Linux 上,你还可以执行详细的 CPU 和原生 heap profiling。
- **面向 Linux 内核与系统开发者:** 深入了解内核行为。Perfetto 充当 `ftrace` 的高效用户空间 daemon,允许你在时间轴上可视化调度、系统调用、中断和自定义内核 tracepoint。
- **面向 Chromium 开发者:** Perfetto 是 `chrome://tracing` 的 tracing 后端。使用它来调试并定位浏览器、V8 和 Blink 中的问题根源。
- **面向性能工程师和 SRE:** 分析和可视化各种 profiling 和 tracing 格式,而不仅仅是 Perfetto 的格式。使用强大的 SQL 接口以编程方式分析来自 **Linux perf**、**macOS Instruments**、**Chrome JSON traces** 等工具的 trace 数据。
## 快速入门
我们设计文档旨在尽可能快地引导你找到正确的信息,无论你是性能分析的新手还是经验丰富的开发者。
1. **初次接触 tracing?** 如果你不熟悉 tracing 和 profiling 等概念,请从这里开始:
- [**什么是 Tracing?**](https://perfetto.dev/docs/tracing-101) - 性能分析世界的温和入门介绍。
2. **准备好深入了解了吗?** 我们的“快速入门”指南是所有用户的主要入口点。它将帮助你找到适合你特定需求的教程和文档:
- [**如何开始使用 Perfetto?**](https://perfetto.dev/docs/getting-started/start-using-perfetto) - 根据你的角色和目标(例如 Android 应用开发者、C/C++ 开发者等)寻找你的路径。
3. **想要完整的概览?** 要全面了解 Perfetto 是什么、为什么有用以及谁在使用它,请查看我们的主要文档页面:
- [**Perfetto 文档主页**](https://perfetto.dev/docs/)
## Debian 发行版
对于对 Perfetto Debian 发行版感兴趣的用户,官方的事实来源和打包工作维护于 [Debian Perfetto Salsa Repository](https://salsa.debian.org/debian/perfetto)
## 社区与支持
有疑问?需要帮助?
- **[GitHub Discussions](https://github.com/google/perfetto/discussions/categories/q-a):** 用于问答和一般性讨论。
- **[GitHub Issues](https://github.com/google/perfetto/issues):** 用于错误报告。
- **[Discord](https://discord.gg/35ShE3A):** 用于与社区和开发者进行实时聊天。
我们遵循 [Google 开源社区指南](https://opensource.google/conduct/)。
标签:AI工具, Android开发, C++17, Chromium, CPU调度, Ftrace, HTTP头分析, JARM, Java/Kotlin, Mutation, Profiling, Root Cause分析, SQL分析, Trace文件, 低开销, 内存分析, 内核探针, 可视化, 堆栈采样, 多线程, 守护进程, 嵌入式系统, 应用卡顿, 开源, 性能分析, 数据可视化, 浏览器UI, 生产级, 系统追踪