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

少而不学,老而不识。

Perfetto 详细介绍哪些?

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

Perfetto 详细介绍

(1)整体概览

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)traceconv 工具

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

Perfetto traceconv工具

(4)痕量分析

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

痕量分析 跟踪处理器

痕量分析 基于跟踪的指标

(5)heapprofd

 heapprofd:Android堆分析器。

Perfetto heapprofd-Android堆分析器

(6)完美的CI设计

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

Perfetto 完美的CI设计 架构图

 有四个主要部分:

  • 前端:AppEngine。
  • 控制器:AppEngine BG服务。
  • 工作者:Compute Engine + Docker。
  • 数据库:Firebase实时数据库。

它们通过Firebase数据库耦合。DB是整个CI的真理之源。

(7)安全模型

 在Android / Linux上进行系统范围跟踪的安全模型。

Perfetto 系统范围跟踪的安全模型

一图胜千言,剩下的一起探索吧…

小编的扩展链接

参考链接

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


 ❤ 比心 ❤

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享