Perfetto概览

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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 tracingPerfetto 整合了 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文件后浏览器在本地解析文件不需要与服务器交互。
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6