Perfetto 使用 笔记

这篇具有很好参考价值的文章主要介绍了Perfetto 使用 笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

抓取命令

抓取

adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 10s sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

导出命令

adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace

打开工具

PerfettoUI

快捷键

可以查看工具栏左侧部分,以下是常用部分:

W:放大
S:缩小
A:左移
D:右移
M:选中当前鼠标点击的时间段

pip to top 功能很实用,可以远距离几项聚合来看。还有搜索功能,知道名称效率更高。

主要内容分类

线程状态

  1. 线程状态
  2. 执行方法

Counter 计数采用部分信息

一个程序里面全局的一个变量值展示,比如在surfaceFlinger的vsync 的部分值

asycn 执行块部分信息

比如ValueAnimator
对应代码
Trace.asyncBegin 和 Trace.asyncTraceEnd

跨进程通讯的发起端与接受端跳转

  1. 同步
    binder transaction
    binder reply

  2. 异步 (binder 有个三角形标记)
    binder transaction async
    binder async rcv

代码中添加trace

fw 添加

工具类路径

system/core/libcutils/include/cutils/trace.h

方法

  1. ATRACE_ALL()
  2. ATRACE_NAME(name)
  3. atrace_begin(mTag, name) 对应宏定义 ATRACE_BEGIN(name)
  4. atrace_end(mTag) 对应宏定义 ATRACE_END()

前两种方法颗粒度较大,要考虑好作用域 (方法或代码块),内部使用 后面两种方法。

  1. ATRACE_INT(mTag, int)
  2. ATRACE_FORMAT(fmt,…)

因为显示的值都是固定的,所以提供了第6个方法,可以动态显示内容,比如时间等,路径framework/native/include/gui/TraceUtils.h

app 中添加

Trace.java
traceBegin
traceEnd文章来源地址https://www.toymoban.com/news/detail-812458.html

到了这里,关于Perfetto 使用 笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Perfetto分析进阶

    一、Perfetto介绍 Perfetto是Android Q中引入的全新下一代平台级跟踪工具,为Android、Linux和Chrome平台提供了一种通用的性能检测和跟踪分析工具集。其核心是引入了一种全新的用户空间到用户空间的跟踪协议,该协议基于protobuf序列化机制将抓取的数据填充到共享内存缓冲区,可

    2024年02月02日
    浏览(28)
  • android 如何分析应用的内存(十三)——perfetto

    本篇文章是native内存的最后一篇文章——perfetto 从2018年始,android开发者峰会正式推出perfetto工具。从此perfetto成为安卓最重要的工具之一。在2018年以前,android使用systrace工具,进行同样的工作。 perfetto分成三部分: 第一部分: 录制。这部分将录制不同的数据来源,如:内存,

    2024年02月09日
    浏览(40)
  • 【ARM Trace32(劳特巴赫) 使用介绍 2 -- Trace32 cmm 脚本基本语法及常用命令】

    CMM ( Command Macro Model ) 是由 Lauterbach 公司定义的一种脚本语言,用于控制它的 TRACE32 调试器 系列。CMM脚本通常用于自动化调试或测试任务,例如加载代码,配置目标硬件,运行测试等。 SYStem(缩写sys) 是CMM脚本中的一条命令,它用于控制和查询目标系统的状态。以下是一些常

    2024年02月06日
    浏览(51)
  • 【MySQL高级篇笔记-性能分析工具的使用 (中) 】

    此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库服务器的优化步骤 二、查看系统性能参数 三、统计SQL的查询成本:last_query_cost 四、定位执行慢的 SQL:慢查询日志 1、开启慢查询日志参数 2、查看慢查询数目 3、慢查询日志分析工具:mysqldumpslow 4、关闭慢查询日志 5、删除

    2024年02月07日
    浏览(59)
  • 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)

    使用PRACTICE 脚本(.cmm) 在TRACE32 中使用PRACTICE 脚本(*.cmm)将帮助你: 在调试器启动时立即执行命令 根据您的项目需求自定义TRACE32PowerView用户界面 加载应用程序或符号 使调试操作具有可重复性, 并可用于验证目的和回归测试 自动启动脚本 安装 TRACE32 软件后,脚本 autostart.cmm 将

    2024年02月02日
    浏览(59)
  • Golang的trace性能分析

          上一篇是 pprof 的性能分析,通过 pprof 找到我们服务中的瓶颈点来进行优化。Golang的pprof性能分析       一般我们使用 pprof 的 profile 来分析服务的性能,主要是 CPU 方面的耗时和调用链路等。但是光靠 profile 是不够的,细节方面还是要使用 trace 分析并发和阻塞事件

    2024年02月09日
    浏览(39)
  • JVM性能监控之命令行工具全解

    性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。 Java作为最流行的编程语言之一,其应用性能诊断一直受到业界的广泛关注,可能造成Java应用出现性能问题的因素非常多,例如线程控制、

    2023年04月08日
    浏览(48)
  • Java性能分析中常用命令和工具

    当涉及到 Java 性能分析时,有一系列强大的命令和工具可以帮助开发人员分析应用程序的性能瓶颈、内存使用情况和线程问题。以下是一些常用的 Java 性能分析命令和工具,以及它们的详细说明和示例。 以下是一些常用的性能分析命令和工具汇总: 命令 功能简述 jps 用于查

    2024年02月12日
    浏览(37)
  • Trace32 部分命令

    以下命令可用于对FLASH进行刷写 FLASH.ReProgram ALL 启用所有声明的FLASH设备进行编程 FLASH.ReProgram off 对FLASH设备进行编程,然后禁用FLASH编程 Data.LOAD.auto 加载刷写文件(在大多数情况下,可以自动检测文件格式) Data.LOAD.file_format 有关支持的文件格式,请参阅《处理器体系结构支

    2024年02月10日
    浏览(43)
  • Linux系统运维:性能监视和分析工具sar命令详解

    目          录 一、sar工具介绍 二、sar工作原理 (一)原理概述 (二)sar数据收集器 三、sar命令语法 四、sar主要功能介绍 (一)功能概述 (二)CPU统计数据 (三)磁盘I/O统计数据 (四)网络统计数据 1、是使用-n DEV选项的sar输出 2、关于网络错误的信息可以用sar -n EDE

    2024年02月21日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包