btrace使用记录

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。
未经允许不得转载

目录

  • 一、导读
  • 二、使用
  • 三、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习基础知识,温故知新。

systrace是Android4.1版本之后推出的,对系统Performance分析的工具,该工具结合Android 内核的数据,最终会生产html文件。
systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等
Systrace允许你监视和跟踪Android系统的行为(trace)。

但是使用起来比较复杂,还得整个Python 2.7 环境,同时产物体积庞大,网页打开速度很慢。

为此,我们要找个更好的工具,索性字节有个开源工具, btrace(AKA RheaTrace),它是基于 Systrace 的高性能 Trace 工具。

本文简单做个记录,防止找不到文档了。

二、使用

项目配置
在您项目的根目录下build.gradle文件中增加 rhea-gradle-plugin 作为依赖。

buildscript {dependencies {classpath 'com.bytedance.btrace:rhea-gradle-plugin:2.0.3-rc02'}
}

接着,在app/build.gradle文件中应用如下所示插件和依赖。

dependencies {// rheatrace core libimplementation "com.bytedance.btrace:rhea-core:2.0.3-rc02"
}
...
apply plugin: 'com.bytedance.rhea-trace'
...
rheaTrace {compilation {traceFilterFilePath = "${project.rootDir}/trace-filter/traceFilter.txt"needPackageWithMethodMap = trueapplyMethodMappingFilePath = ""}
}

然后运行app,

确保电脑已集成 adb 与 Java 环境。

连接手机至电脑,并保证可被 adb devices 识别。

安装集成 RheaTrace 2.0 的 APK 至手机。

下载下方“脚本管理” 最新脚本至电脑。

在电脑脚本所在目录执行如下命令。


java -jar rhea-trace-processor-2.0.0.jar -a com.xxx -t 10 -o output.pb -r rhea.all sched -fullClassName java -jar rhea-trace-processor-2.0.0.jar -a com.xxx -t 5 -o output.pb rhea.all sched -fullClassName -mode simple-r 表示重启应用,根据需求来确定

通过上面的命令,我们可以得到一个文件,trace 产物使用 https://ui.perfetto.dev/ 即可打开分析。

git doc

感兴趣的可以看看

原理揭秘

效果图

三、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

未经允许不得转载

ddd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性代数基础概念:向量空间

目录 线性代数基础概念:向量空间 1. 向量空间的定义 2. 向量空间的性质 3. 基底和维数 4. 子空间 5. 向量空间的例子 总结 线性代数基础概念:向量空间 向量空间是线性代数中最基本的概念之一,它为我们提供了一个抽象的框架&#xff0c…

设计模式深入解析与实例应用

目录 工厂模式1.简单工厂模式2.工厂方法模式3.抽象工厂模式 策略模式责任链模式概述模板方法模式概述单例模式概述 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳实践,旨在将对象的创建过程与使用过程分离,以提高代码的…

如何在Java中实现异步任务?

如何在Java中实现异步任务? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 引言 在现代应用程序中,异步任务的实现至关重要。它可以提…

GIT重新提交-恢复到暂存状态

Git重新提交 --git reset --soft HEAD~n 有时候我们提交了commit并且push到分支之后,发现代码有需要修改的地方,想要修改重新提交commit应该怎么办呢 这时候我们只需要使用git reset --soft HEAD~n命令,然后修改代码后强制提交修改提交就可…

MySQL表解锁

查看锁信息 show full processlist 如果一个表被锁定了,会有一个 “Waiting for table metadata lock” 的提示,表明该表正在等待锁定。 解锁表 删除state上有值的事务 kill query 事务id 表解锁完成

MySQL索引及事物

目录 一、数据库索引 1.索引概念 2.索引作用 3.创建索引原则 二、索引的分类及创建 1.普通索引 (1)直接创建索引 (2)修改表结构添加索引语法 (3)创建表结构时,同时创建索引 2.唯一索引…

搭建rtmp/rtsp流媒体服务器的步骤

很多文章介绍使用ffmpeg推送和拉流,执行推流命令: D:\software\ffmpeg-7.0.1-full_build\bin\ffmpeg.exe -re -stream_loop -1 -i "D:\Video\汪汪队立大功\S07\001.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test110 经常…

迅为iTOP-2K1000开发板龙芯中科国产64位Loognix主板

硬件配置 国产龙芯处理器,双核64位系统,板载2G DDR3内存,流畅运行Busybox、Buildroot、Loognix、QT5.12 系统! 接口全板载4路USB HOST、2路千兆以太网、2路UART、2路CAN总线、Mini PCIE、SATA固态盘接口、4G接口、GPS接口WIF1、蓝牙、Mini H…

获取个人免费版Ubuntu Pro

首先上官网地址:Ubuntu Pro | Ubuntu 点击页面中的"Get Ubuntu Pro now" 将用途选为“Myself”,在此页面中Ubuntu说明了该版本只面向个人开发者,且最终只允许5台设备免费使用;因而部署设备的抉择就不得不慎重考虑了&am…

基于springboot实现机动车号牌管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现机动车号牌管理系统演示 摘要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以&am…

cmake add_definitions详解

在 CMake 中&#xff0c;add_definitions 函数用于向编译器添加预定义的宏定义。这些宏定义可以在编译源文件时使用&#xff0c;以便在代码中条件编译或设置特定的编译选项。 基本语法 add_definitions(-D<DEFINE>)D: 要定义的宏名称。在大多数编译器中&#xff0c;使用…

【nest】puppeteer 使用 addScriptTag 在页面中添加方法的方式

1.js方法支持&#xff08;已测试&#xff09; 1.1 先支持js tsconfig.json "compilerOptions": {"allowJs": true,...}1.2 需要将抽离的方法放在js中封装 src/utils/utils.js export function concatLabel(tagList) {let labels [];for (let i …

node+nginx实现对react进行一键打包部署--windows版

文章目录 nodenginx实现对react进行一键打包部署--windows版1.功能展示及项目准备1.1功能展示 1.2 项目准备1.2.1技术点1.2.2安装相关配置(windows) 2.实现2.1 实现思路2.2 实现步骤2.1 项目准备2.1.1 创建env文件2.1.2 创建api/index.js文件2.1.3 添加解决跨域代码 2.2 项目实…

Android Studio中HAXM安装失败的解决方案(HAXM installation failed)

文章目录 错误示例Hyper-VWindows SandboxWindows Hypervisor Platform&#xff08;Windows 虚拟化监控程序平台&#xff09; 出现原因解决方法虚拟机平台方案一方案二方案三 错误示例 表明HAXM (Hardware Accelerated Execution Manager)安装失败了。HAXM是一个硬件辅助虚拟化…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip&#xff0c;然后利用sata ip实现读写sata 盘的目的&#xff0c;如果需要再速度和容量上增加&#xff0c;那么仅仅需要增加sata ip个数就能够实现增加sata盘&#xff0c;如果仅仅实现data的读写整体来说sata ip设计比较简单&#xff0c;下面…

车载系统类 UI 风格品质非凡

车载系统类 UI 风格品质非凡

List的五种常用遍历方式

在Java中&#xff0c;遍历List的方式有多种&#xff0c;每种方式适合不同的使用场景。以下是常见的几种遍历List的方式&#xff0c;并举例说明 public static void main(String[] args) {List<String> names new ArrayList<>();names.add("Alice");name…

数据资产与云计算深度融合:借助云计算技术,优化数据存储、高效处理并创新应用,驱动企业数字化转型

目录 一、引言 二、数据资产与云计算深度融合的必要性 1、数据资产的重要性 2、云计算技术的优势 三、云计算技术在数据资产管理中的应用 1、数据存储的优化 2、数据处理的高效性 3、数据应用的创新 四、云计算驱动企业数字化转型的实践案例 案例一&#xff1a;金融行…

JS的this关键字详解

引言 学习JS的this关键字往往难以理解和应用&#xff0c;本文详细解读JS中的this关键字&#xff0c;并结合案例给出相应的解释。 PS: https://github.com/WeiXiao-Hyy/blog整理了后端开发的知识网络&#xff0c;欢迎Star&#xff01; JS中的this关键字 this提供了一种更优雅…

虚拟机与主机的网络桥接

虚拟机网路桥接是一种网络配置方式&#xff0c;它允许虚拟机与物理网络中的其他设备直接通信。在桥接模式下&#xff0c;虚拟机的网络接口通过主机的物理网卡连接到局域网中&#xff0c;就像主机本身一样&#xff0c;拥有自己的MAC地址和IP地址。这种方式使得虚拟机可以像独立的…