Perfetto概览

Perfetto是一款由谷歌提供的开源性能检测工具,适用于Android和Linux平台。它支持应用和系统级别的trace采集,包括动态配置、kernel tracing、heap profiling等。Perfetto的Tracing SDK允许自定义追踪事件,同时提供强大的Trace Processor进行SQL查询分析及可视化工具Perfetto UI进行离线分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Perfetto 简介

Perfetto是谷歌提供的一个用于性能检测和 trace 文件抓取分析的生产级开源工具包。它可以帮助我们进行应用层面以及系统层面的 trace 文件抓取、native/java 内存剖析。它还提供了一个强大的库能够帮助我们在 web 网页上对抓取的trace 文件进行可视化分析,并使用 SQL 语句对大GB trace 进行查询分析。
在这里插入图片描述

2、trace采集

2.1、动态配置

支持开发者通过动态配置的方式抓取自己所关注的性能 trace 文件。

2.2、Android/Linux 平台系统级 trace 采集

在 Android 和 Linux 平台上, Perfetto 通过不同的系统接口来采集详细的性能数据并打包成多个数据源。如:
Kernel tracing:Perfetto 整合了 Linux’s ftrace ,支持抓取 kernel events (如scheduling events, syscalls)。
/proc and /sys pollers:支持采样一段时间内进程和系统的 Cpu 、内存的状态。
battery and energy-usage counters:整合了 Android HAL 层相关模块,采集电池和耗电的情况。
Native heap profiling:一种低开销的heap profiler ,独立于被测进程,通过 hook 内存 malloc/free/new/delete 事件并关联内存调用堆栈分析 native 内存。
Java heap profiling:独立于被测进程,通过 Android Runtime 机制获取 java 堆内存快照,dump出完整的堆内容,分析 java 内存使用情况。

2.3、Tracing SDK

Perfetto 提供的 Tracing SDK 允许 C++ 开发人员使用特定的跟踪点来追踪应用程序的相关 trace。可以使用 Track Event Library 来自定义你想要追踪的事件类型以及相应数据源。

3、trace分析

Perfetto 除了提供 trace 采集的功能,还支持导入、解析、查询 trace 。Trace Processor 基于 SQLite 引擎向外提供表存储能力(SQL tables),能够将 trace 文件保存在数据表中,并让用户可以通过 SQL 语句进行查询分析。可以将 trace 文件解析后的结果通过 JSON 或者 protobuf 的形式输出。

3.1、Trace 可视化

可视化工具 Perfetto UI可以打开和查询已经抓好的 trace 文件。基于 Trace Processor 和SQLite,它支持分析和查询trace文件。

Perfetto UI 打开1次后,就可以离线工作。通过Perfetto UI 打开trace文件后,浏览器在本地解析文件,不需要与服务器交互。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值