systrace/perfetto抓取方式分享

用systrace方式抓取DDR频率、GPU频率、free memory、FPSGO和sched等信息 阅读详情
AI摘要

本文介绍了在现代手机上使用perfetto替代systrace进行性能分析的方法,包括离线抓取perfettotrace命令、导出至Chrome浏览器以及利用AOSP源码中的record_android_trace工具进行实时抓取。同时提及了atrace作为备选方案。

背景

近来有一些同学反馈性能分析,现在大部分都是其实已经开始使用perfetto了,连sdk上都已经找不到哦systrace相关工具,让马哥可以分享一些这个相关内容,其实以前企业里面那时候大部分都是使用老版本systrace的,相比新版本的perfetto确实功能上要差一些,今天就带大家来探索一下相关的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

抓取后导出相关trace到chrome上打开:

adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace
网站打开trace:
打开链接:
https://ui.perfetto.dev/

针对可能不支持perfetto版本可以,离线抓取atrace方式

开始抓取

adb shell "atrace -c  -t 10 sched freq idle am wm gfx view binder_driver hal dalvik camera input res gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss  --async_start"

停止抓取并把trace导出到sdcard

adb shell atrace --async_stop -z -c -o /sdcard/atrace_normal.atrace

然后atrace手机上pull出来既可以

adb pull /sdcard/atrace_normal.atrace

直接观看atrace:
打开链接:
https://ui.perfetto.dev/
在这里插入图片描述

手机连线电脑抓取perfetto(强烈推荐):

这里没有采用chrome浏览器直接抓取方式,而是使用了的源码的中自带的record_android_trace工具
具体的record_android_trace路径是在aosp源码的如下目录
aosp/external/perfetto/tools

具体抓取命令:

test@test:~/aosp/external/perfetto/tools$ ./record_android_trace -o $(date +%Y%m%d_%H%M%S)_trace_file.perfetto-trace -t 5s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss
Running perfetto --background --txt -o /data/misc/perfetto-traces/2023-10-01_13-06-0d9a0e.pftrace -t 5s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss

以上抓取后直接自己会打开相关的chrome的浏览器

在这里插入图片描述
更多干货视频内容可以关注公众号或者b站up主(千里马学框架)

Android性能分析:深入掌握Systrace与Perfetto抓取方法与实战技巧 在移动应用开发与系统优化领域,性能分析是定位卡顿、掉帧等问题的核心技术手段。其核心原理是通过跟踪系统内核和应用层的运行时事件,生成可视化时间线报告,从而洞察CPU调度、线程状态、图形渲染等底层行为。这项技术的核心价值在于,它能将抽象的性能问题转化为具体、可分析的数据,是进行深度性能调优和问题根因分析的基石。在实际的工程实践中,尤其是在自动化测试、线上问题复现和长时间监控等复杂场景下,标准的一键生成方式往往无法满足需求。此时,掌握灵活、自动化的底层抓取能力就显得至关重要。本文聚焦于Android平台,深入解析 阅读详情

相关推荐

Android中如何通过perfetto抓取trace

借助config文件配置要调试的内容,命令行如下,其中config.pbtx为config file,可以借助Perfetto UI的recording setting(Perfetto UI)生成,或者在Perfetto UI中的redording settings中设置后好,在recording command 中copy所有内容,在terminal中直接copy执行即可。可以看到,我们通过这种的方式也是抓取成功的,通过 config 的方式我们可以自定义抓取规则,更大的契合了各种业务的需要。

jiangchaobing_2017的博客 3348

systrace 基本使用

systrace

QG 1875

systrace抓取方式

1. Android Device Monitor Android SDK安装目录,tools文件夹里面有monitor启动方式,双击monitor.bat启动 在android device monitor窗口中点击systrace图标即可开始抓取 抓取配置设置一下,点击ok就可以开始抓取了 点击ok之后,赶快操作手机复现问题,抓取后的trace.html文件可以直接双击打开 2. “系统跟踪”应用 “系统跟踪”应用是一款用于将设备活动保存到跟踪文件的 Android 工具。在搭载

github_2011的博客 1907

抓取Systrace方法汇总

了解 Systrace:https://source.android.google.cn/devices/tech/debug/systrace 浏览Systrace报告:https://developer.android.google.cn/topic/performance/tracing/navigate-report 系统跟踪概览:https://developer.android.google.cn/topic/performance/tracing Perfetto...

Happy learning 1万+

Android性能分析:从systrace到Perfetto,atrace抓取与实战解析

系统级跟踪是性能优化的核心技术,它通过记录内核、系统服务和应用进程的活动轨迹,帮助开发者洞察系统运行状态。其原理基于事件采样与时间线记录,以极低开销捕获CPU调度、渲染、Binder调用等关键事件。这项技术的核心价值在于将性能问题从“黑盒猜测”变为“可视化分析”,为定位卡顿、掉帧、启动慢等顽疾提供直接证据。在Android生态中,系统级跟踪广泛应用于应用性能调优、系统底层问题排查以及自动化测试流水线。本文聚焦于Android性能分析的核心工具atrace与新一代框架Perfetto,深入讲解其抓取流程、参数

weixin_34049948的博客 408

Android性能分析:从systrace到perfetto,掌握卡顿定位核心技术

在移动应用开发中,性能优化是提升用户体验的关键环节,而系统级性能分析工具则是定位问题的核心手段。其基本原理是通过追踪内核和用户空间的关键事件,构建系统运行的时间线视图,从而透视CPU调度、渲染管线、磁盘I/O等模块的实时状态。这项技术的核心价值在于能以极低开销捕获多维度数据,精准定位卡顿、延迟等性能瓶颈的根源。在Android生态中,systrace作为系统内置的性能分析工具集,已成为分析系统级和框架级问题的首选方案。它通过记录**ftrace内核事件**和**应用进程轨迹**,帮助开发者从渲染延迟、主线程

weixin_33801856的博客 408

【性能工具】atrace、systrace、perfetto抓取的trace文件有何不同?

核心结论:三者数据来源相同,perfetto 是进化版,在数据丰富度、分析能力、工具链上全面超越前两者。新项目直接用 perfetto,老项目的 systrace trace 可通过 traceconv 转换复用。

TechMix的博客 306

Perfetto与Systrace:Android卡顿定位的完整实战指南

在Android应用性能优化中,卡顿分析一直是工程实践中的难题。从基础概念来看,每一帧16.6ms的渲染预算决定了流畅体验的边界,而传统日志在还原跨线程、跨进程的卡顿现场时往往力不从心。Systrace作为早期的系统跟踪工具,为开发者打开了性能分析的大门,而Perfetto则是这一机制的完整进化形态,提供了更细粒度的调度信息、Binder调用链、帧时间线等关键数据源。通过合理的TraceConfig配置,开发者可以精准控制抓取范围与数据体积,再结合Perfetto内置的SQL查询能力,将trace转化为可检

weixin_34023982的博客 449

Android Perfetto 系列 1:Perfetto 工具简介

Perfetto 是一个高级的开源工具,专为性能监测和分析而设计。它配备了一整套服务和库,能够捕获和记录系统层面以及应用程序层面的活动数据。此外,Perfetto 还提供了内存分析工具,既适用于本地应用也适用于 Java 环境。它的一个强大功能是,可以通过 SQL 查询库来分析跟踪数据,让你能够深入理解性能数据背后的细节。为了更好地处理和理解大规模数据集,Perfetto 还提供了一个基于 Web 的用户界面,使你能够直观地可视化和探索多 GB 大小的跟踪文件。

Hfengxiang的博客 1594

Perfetto入门指南:从systrace升级到全链路性能分析工具

在Android应用性能优化中,trace分析一直是从卡顿和掉帧问题中定位根因的关键手段。早期开发者常依赖systrace,但其在数据深度和扩展性上已逐渐落后。Perfetto作为Google开源的下一代系统追踪平台,基于内核ftrace能力,不仅覆盖CPU调度、线程状态、内存分配等底层数据,还提供SQL查询接口对trace进行结构化分析。无论是App启动耗时、界面掉帧,还是系统级资源争抢,都能通过Perfetto时间线清晰还原。借助其强大的Trace Processor引擎,开发者能像操作数据库一样筛选切

weixin_34245749的博客 328

用perfetto精准定位Android卡顿根因的实战指南

在Android应用性能优化中,系统级trace分析是定位卡顿问题的关键手段。trace工具通过采集内核调度、CPU频率、Binder调用等底层数据,完整还原卡顿发生时的真实场景,让开发者不再依赖肉眼猜测。相比传统systrace,新一代trace系统在数据源、文件格式及分析能力上全面升级,支持SQL查询和自定义metric,使问题定位从经验驱动转向数据驱动。无论是偶现卡顿、竞品对比还是线上用户反馈,开发者都可以通过系统级trace快速锁定应用主线程、渲染线程或系统服务中的性能瓶颈。perfetto作为An

weixin_34293246的博客 362

Hal深入实战/perfetto-systrace实战/SurfaceFlinger合集-安卓framework开发实战开发

比如surfaceflingre模块深入分析需要用到hal相关的模块,比如mapper,hwc等,所以说去分析surfaceflinger就必须要有一定hal基础比较好,还有就是perfetto,大家可能会以为他只是个性能优化工具。核心思路就是讲解清楚perfetto相关的基础知识,学会怎么看perfetto的trace,及怎么自己加和打印tag和trace等,有了这些知识后再会结合相关的业务来练习怎么看perfetto,比如surfaceflinger就是一个学习实战看perfetto的很好案例。

learnframework的博客 1376

性能优化之工具篇-如何获取systrace

分析性能问题时比较常用的工具之一是systrace,Android原生提供了这样的工具,本文将介绍如何使用该工具捕捉性能日志

jidapenglin28的专栏 406

systrace实战:从时间轴到主线程,一步步定位Android卡顿

在Android性能问题排查中,系统级跟踪工具是快速定位卡顿的利器。其底层基于Linux内核的ftrace机制,能够统一采集CPU调度、线程状态、Binder事务、输入分发等跨进程信息,形成带时间戳的事件流。这种全局视角的价值在于,它能帮助开发者跳出单点日志的局限,从系统层面看清主线程为何阻塞、渲染链路为何掉帧、CPU是否被抢占。无论是应用启动慢、列表滑动不流畅,还是点击无响应,通过观察线程颜色和关键切片,即可将问题范围从十几秒压缩到几百毫秒。从命令行抓取到Chrome可视化分析,再到Binder调用下钻,

weixin_34295316的博客 298

抓取systrace脚本.rar

抓取systrace脚本

NVMe-MI --- Message Servicing Model(消息服务模型)

本文主要介绍NVMe-MI消息服务模型,两个主要类别是请求消息和响应消息。并介绍带外机制消息服务状态机。

智小星的博客 2014

【性能优化】无法直接用Perfetto网站抓取trace解决方法

文章摘要: 本文介绍了三种传统Android trace抓取方法(atrace、perfetto、systrace.py)的繁琐流程,提出通过Chrome浏览器直接抓取的优化方案。详细演示了使用Perfetto网页版(ui.perfetto.dev)通过WebUSB连接Android设备的具体步骤,包括设备授权、配置参数和实时抓取微信朋友圈滑动trace的过程。该方法省去了adb pull等中间环节,实现了从抓取到分析的快速可视化。

TechMix的博客 604

【DMA】认识 DMA 及其工作流程(与传统CPU存取方式的区别)

【DMA】认识 DMA 及其工作流程(与传统CPU存取方式的区别)

challenglistic的博客 5万+
上一篇: android高级开发自定义View-canvas的save和restore方法的使用-大厂高频面试题
下一篇: android 13 systrace/perfetto视角分析SurfaceFlinger中截图源码分析
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值