(七) 下篇 Android 性能优化 Perfetto 详细介绍

小酌鸡汤

少而不学,老而不识。

本文来源《Android 性能优化 全家桶》

Perfetto详细介绍哪些?

 Perfetto提供数据源超集,这是一个相对模糊的概念,尽量容易的去理解它,所以主要提供Perfetto的能力介绍。

Perfetto的 详细介绍 开始吧~

(1)Perfetto能力整体概览
Perfetto 能力整体概览
  • 系统分析(适用于Linux和Android的系统范围分析)
     Linux内核跟踪:捕获高频ftrace数据:调度活动,任务切换延迟,CPU频率等等
     用户空间分析器和额外的探针:本机堆分析,Java堆分析,/ proc状态文件的轮询器
     内置于Android:自Android 9 Pie以来该平台的一部分,也可在Linux上运行
  • 应用追踪
     高效的跟踪点仪器:以高吞吐量,低开销的跟踪点记录C ++应用程序的活动
     结构化和可配置的事件:定义自定义protobuf消息以表示强类型的应用程序特定信息,仅跟踪您需要的信息
     与系统范围的跟踪集成:在同一时间线上将应用程序的状态与系统范围内的分析数据相关联
  • 跟踪查看器
     交互式痕迹探索:使用Perfetto UI记录,查看和处理跟踪数据
     支持流行的跟踪格式文件:TraceEvent JSON,Android systrace,ftrace文本输出
     完全在您的浏览器中运行:不涉及服务器交互,即使您离线也可以工作
  • 痕量分析
     基于SQL的跟踪模型:跟踪处理器提取跟踪并公开基于SQLite的接口以通过外壳和UI访问跟踪的内容
     大痕量分析:支持高达数十GB的跟踪
     可互操作的:可以导入和导出流行的跟踪格式:Chromium JSON跟踪格式,Android Systrace,ftrace,CSV
(2)Perfetto-系统分析,应用程序跟踪和跟踪分析

 Perfetto是用于性能检测和跟踪分析的生产级开源堆栈。它提供用于记录系统级和应用程序级跟踪的服务和库,本机+ Java堆分析,使用SQL分析跟踪的库以及基于Web的UI以可视化和探索多GB跟踪。

Perfetto 整体架构图
(3)Perfetto traceconv工具

 traceconv工具将Perfetto跟踪转换为其他跟踪格式。

Perfetto traceconv工具
(4)痕量分析-跟踪处理器

  *跟踪处理器是一个C ++库(/ src / trace_processor),它吸收以多种格式编码的跟踪,并公开一个SQL接口,用于查询一致的表集中所包含的跟踪事件。它还具有其他功能,包括计算摘要度量,使用用户友好的描述注释跟踪以及从跟踪的内容派生新事件。

痕量分析 跟踪处理器
痕量分析 基于跟踪的指标
(5)heapprofd:Android堆分析器
Perfetto heapprofd-Android堆分析器
(6)Perfetto 完美的CI设计

 此CI用于AOSP的TreeHugger的顶部(而不是替代)。它提供早期测试信号,并涵盖TreeHugger不支持的其他操作系统和较旧的Android设备。

Perfetto 完美的CI设计 架构图

 有四个主要部分:

  • 前端:AppEngine。
  • 控制器:AppEngine BG服务。
  • 工作者:Compute Engine + Docker。
  • 数据库:Firebase实时数据库。
    它们通过Firebase数据库耦合。DB是整个CI的真理之源。
(7)在Android / Linux上进行系统范围跟踪的安全模型
Perfetto 系统范围跟踪的安全模型
一图胜千言,剩下的一起探索吧…

小编的扩展链接

参考链接

娴静犹如花照水,行动好比风扶柳

举手之劳,赞有余香! ❤ 比心 ❤

推荐阅读更多精彩内容