Perfetto 项目构建指南:从入门到精通

Perfetto 项目构建指南:从入门到精通

perfetto Performance instrumentation and tracing for Android, Linux and Chrome (read-only mirror of https://android.googlesource.com/platform/external/perfetto/) perfetto 项目地址: https://gitcode.com/gh_mirrors/pe/perfetto

概述

Perfetto 是 Google 开发的一款高性能系统性能分析工具,广泛应用于 Android 系统和 Chrome 浏览器中。本文将详细介绍如何在不同平台上构建 Perfetto 项目,包括独立构建和 Android 系统构建两种方式。

构建方式选择

Perfetto 支持两种主要构建方式:

  1. 独立构建:适合本地开发和测试,依赖较少,迭代速度快
  2. Android 系统构建:适合需要与 Android 内部组件交互的开发

对于大多数开发场景,推荐使用独立构建方式,除非你的工作需要直接调用 Android 内部 API。

独立构建详细步骤

1. 获取源代码

首先需要克隆 Perfetto 代码仓库:

git clone https://github.com/google/perfetto

2. 安装构建依赖

Perfetto 提供了便捷的依赖安装脚本:

tools/install-build-deps [--android] [--ui] [--linux-arm]

参数说明:

  • --android:安装 Android NDK 等 Android 开发依赖
  • --ui:安装 Web UI 开发所需的 NodeJS 和 NPM 模块
  • --linux-arm:安装 Linux ARM/64 交叉编译所需的 sysroots

3. 配置 GN 构建参数

Perfetto 使用 GN 作为构建系统,配置构建参数:

tools/gn args out/android

在打开的编辑器中输入配置,例如:

# Android 构建配置示例
target_os = "android"
target_cpu = "arm64"  # 可选 arm/x64
is_debug = true
cc_wrapper = "ccache"  # 可选,加速重建

4. 执行构建

使用 ninja 执行构建:

# 构建所有目标
tools/ninja -C out/android

# 或指定构建特定目标
tools/ninja -C out/android traced traced_probes perfetto

Android 系统构建

如果你需要将 Perfetto 集成到 Android 系统中,可以使用 AOSP 构建系统:

mmma external/perfetto
# 或指定构建特定模块
m traced traced_probes perfetto

构建产物会输出到 out/target/product/XXX/system/ 目录下。

Web UI 开发

Perfetto 提供了功能强大的 Web UI 界面,开发流程如下:

1. 安装 UI 依赖

tools/install-build-deps --ui

2. 构建 UI

ui/build

3. 启动开发服务器

ui/run-dev-server

访问 http://localhost:10000/ 即可查看 UI 效果,服务器支持 CSS 和 TS/JS 文件的实时重载。

4. 运行单元测试

ui/run-unittests

跨平台构建支持

Perfetto 支持多种平台构建:

Windows 构建

Windows 支持使用 MSVC 2019 或 clang-cl 编译器:

  1. 安装必要工具:

    • Visual Studio 2019 构建工具
    • Windows 10 SDK
    • Python 3
  2. 安装构建依赖:

    python3 tools/install-build-deps
    
  3. 生成构建文件:

    python3 tools/gn gen out/win
    
  4. 执行构建:

    python3 tools/ninja -C out/win perfetto traced trace_processor_shell
    

Linux ARM 交叉编译

Perfetto 支持交叉编译到 ARM 平台:

  1. 安装 sysroot:

    tools/install-build-deps --linux-arm
    
  2. 配置 GN 参数:

    target_os = "linux"
    target_cpu = "arm"  # 或 "arm64"
    

构建配置选项

Perfetto 提供了丰富的构建配置选项:

基本配置

  • target_os:目标操作系统(android/linux/mac)
  • target_cpu:目标 CPU 架构(arm/arm64/x64)
  • is_debug:调试/发布模式

工具链配置

  • is_clang:使用 Clang 或 GCC
  • is_hermetic_clang:使用捆绑的工具链
  • cc_wrapper:指定编译器包装器(如 ccache)

代码检查工具

  • is_asan:地址检查器
  • is_lsan:内存泄漏检查器
  • is_tsan:线程检查器
  • is_ubsan:未定义行为检查器

IDE 集成

Perfetto 支持生成编译数据库,方便 IDE 集成:

tools/gn gen out/default --export-compile-commands

VS Code 推荐配置

.vscode/settings.json 中添加:

{
  "C_Cpp.clang_format_path": "${workspaceRoot}/buildtools/linux64/clang-format",
  "clangd.arguments": [
    "--compile-commands-dir=${workspaceFolder}/out/linux_debug",
    "--completion-style=detailed"
  ]
}

总结

本文详细介绍了 Perfetto 项目的构建方法,涵盖了从基础构建到高级配置的各个方面。无论是进行本地开发还是系统集成,Perfetto 都提供了灵活的构建选项。开发者可以根据实际需求选择合适的构建方式,并利用丰富的配置选项优化开发体验。

perfetto Performance instrumentation and tracing for Android, Linux and Chrome (read-only mirror of https://android.googlesource.com/platform/external/perfetto/) perfetto 项目地址: https://gitcode.com/gh_mirrors/pe/perfetto

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郜垒富Maddox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值