Android bootchart 分析启动性能工具使用

news/2024/6/16 13:16:41

bootchart简介

bootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像,可以用作进入 systrace 之前的快速健全性检查。

1. 板端配置:

在Android 板端启用 bootchart,请运行以下命令:

2. Bootchart 环境配置

在设备启动后,提取启动图表:

$ANDROID_BUILD_TOP/system/core/init/grab-bootchart.sh

完成后,请删除 /data/bootchart/enabled 以防止每次都收集日期数据。

如果 bootchart 不起作用,并且您看到说明 bootchart.png 不存在的错误消息,请执行以下操作:

运行以下命令:

sudo apt install python-is-python3 cd /home/**/project/env/bootchart git clone https://github.com/xrmx/bootchart.git cd bootchart/pybootchartgui mv main.py.in main.py

更新 $ANDROID_BUILD_TOP/system/core/init/grab-bootchart.sh 以指向 pybootchartgui 的本地副本(位于 ~/Documents/bootchart/pybootchartgui.py

grab-bootchart.sh 修改方案:

diff --git a/init/grab-bootchart.sh b/init/grab-bootchart.sh
index 2c56698a1..874cd2ad0 100755
--- a/init/grab-bootchart.sh
+++ b/init/grab-bootchart.sh
@@ -10,6 +10,7 @@ mkdir -p $TMPDIRLOGROOT=/data/bootchartTARBALL=bootchart.tgz
+BOOTCHARTGUI=/home/**/project/env/bootchart/bootchart/pybootchartgui.pyFILES="header proc_stat.log proc_ps.log proc_diskstats.log"@@ -17,6 +18,7 @@ for f in $FILES; doadb "${@}" pull $LOGROOT/$f $TMPDIR/$f 2>&1 > /dev/nulldone(cd $TMPDIR && tar -czf $TARBALL $FILES)
-pybootchartgui ${TMPDIR}/${TARBALL}
+#pybootchartgui ${TMPDIR}/${TARBALL}
+python ${BOOTCHARTGUI} ${TMPDIR}/${TARBALL}xdg-open ${TARBALL%.tgz}.pngecho "Clean up ${TMPDIR}/ and ./${TARBALL%.tgz}.png when done"

3. 生成的bootchart 示例


http://www.mrgr.cn/p/56584662

相关文章

机器学习算法应用——CART决策树

CART决策树(4-2) CART(Classification and Regression Trees)决策树是一种常用的机器学习算法,它既可以用于分类问题,也可以用于回归问题。CART决策树的主要原理是通过递归地将数据集划分为两个子集来构建决…

圆柱齿轮的旋向如何判断?

上期出了个题,给了两个内齿轮,请大家来判断他们的旋向,看到了有不少小伙伴评论给出了自己的答案,正确和错误差不多各半吧,错的占比要大一些。这期咱们就好好聊一聊这个问题。 外齿轮的旋向大家貌似判断都没什么问题&a…

前端笔记-day03

文章目录 01-初始CSS02-CSS引入方式03-标签选择器04-类选择器05-id选择器06-通配符选择器07-画盒子08-字体大小09-文字粗细10-字体倾斜11-行高12-行高垂直居中13-字体族14-font复合属性15-文本缩进16-文本对齐方式17-图片对齐方式18-文本修饰线19-文字颜色20-调试工具21-综合案…

031.下一个排列Java实现

题意 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&#…

【资源分享】野比大雄的生化危机宫格解密工具

一款简单的游戏工具*----------------------------------------------[下载区]----------------------------------------------* 蓝奏云(提取码:ysgg) *----------------------------------------------[下载区]----------------------------------------------**---------…

pwn知识——劫持IO-file_jumps攻击和environ攻击

导言 哎,异或fd指针真是令人讨厌 IO_file_jumps _IO_lock_t _IO_stdfile,_IO_wide_data(针对宽字节的虚函数表),_IO_FILE_plus(含有stdin,stdout)三者均被定义为IO_file_jumps 原理 IO_file_jumps是一个全局变量符号,存有以下符号这个结构体主要跟缓冲区有关,比如调用…

堆排序 之实现最小的K个数

目录 1、方式一:通过自定义实现建堆和堆化操作 2、方式二:借助模块heapq实现 2.1、模块heapq的基本使用 2.2、使用heapq实现最小的k个数 3、堆在实际项目的应用 实现语言:Python 3.9 题目来源:牛客 分析: 要找…

示例七、超声波传感器测距

通过以下几个示例来具体展开学习,了解超声波传感器原理及特性,学习超声波传感器的应用: 示例七、超声波传感器测距 一、基本原理: 1、超声波测距仪的系统结构 利用超声测距原理测量物体之间的距离,当此距离小于某一设定值时&…

嵌入式软硬件设计流程

转载自:https://blog.csdn.net/jiangjunjie_2005/article/details/44024933从图书馆看到一经典国外嵌入式设计书籍,其中关于“软硬件设计流程”画得精彩,特列出如下:

ctfshow web入门 php反序列化 web267--web270

web267 查看源代码发现这三个页面 然后发现登录页面直接admin/admin登录成功 然后看到了 ///backdoor/shell unserialize(base64_decode($_GET[code]))EXP <?php namespace yii\rest{class IndexAction{public $checkAccess;public $id;public function __construct(){…

WPF 基础、WPF 相关知识、学习、参考项目

前言:最初参加工作时,做过WPF项目 ,后面几年后者虽然有写WPF项目,但多数都是边边角角,写一点满足工作需要。现在写下WPF,主要就是玩一玩,尝试下不同的东西。这是我的代码仓库:地址 (如果对您有帮助,给颗小星星奖励下吧),在WPF/Lesson 10 Practice/Practice/下面。基…

Rust Course学习(编写测试)

如果友友你的计算机上没有安装Rust&#xff0c;可以直接安装&#xff1a;Rust 程序设计语言 (rust-lang.org)https://www.rust-lang.org/zh-CN/ Introduce 介绍 Testing in Rust involves writing code specifically designed to verify that other code works as expected. It…

WPF 整体结构基础

前言:最初参加工作时,做过WPF项目 ,后面几年后者虽然有写WPF项目,但多数都是边边角角,写一点满足工作需要。现在写下WPF,主要就是玩一玩,尝试下不同的东西。这是我的代码仓库:地址 (如果对您有帮助,给颗小星星奖励下吧),在WPF/Lesson 10 Practice/Practice/下面。基…

使用Django中的Session和Cookie来传递数据

在Django中&#xff0c;Session和Cookie是两种常用的机制&#xff0c;用于在服务器端和客户端之间传递数据。下面我将简要介绍如何在Django中使用Session和Cookie来传递数据。 1、问题背景 在 Django 中&#xff0c;可以使用 request.POST 来获取表单提交的数据。但是&#xf…

最新ChatGPT中文系统网站源码+系统部署+支持AI对话、AI绘画、AI音乐等大模型

一、系统介绍 本文将介绍最新的ChatGPT中文版AI创作系统——星河易创AI系统&#xff0c;该系统基于ChatGPT的核心技术&#xff0c;融合了自然语言问答、绘画、音乐等创作功能&#xff0c;并兼容官方GPT全模型。该系统提供多样化的应用&#xff0c;包括GPTs的多场景应用、实时G…

布局全球内容生态,酷开科技Coolita AIOS以硬核品质亮相

当前&#xff0c;全球产业链供应链格局持续重构&#xff0c;成为影响中国对外经济发展的重要因素。2024年4月15至5月5日&#xff0c;历史久、规模大、层次高&#xff0c;作为中国外贸风向标的第135届中国进出口商品交易会&#xff08;即广交会&#xff09;在美丽的广州隆重举行…

CLI举例:通过URL分类控制用户访问的网站

华为CLI举例&#xff1a;通过URL分类控制用户访问的网站 配置基于URL分类的URL过滤功能&#xff0c;可以实现对用户访问的某一类网站的控制。既可以是FW自带的预定义分类&#xff0c;也可以是管理员配置的自定义分类。 组网需求 如图1所示&#xff0c;FW作为企业网关部署在网络…

Spring如何解决循环依赖问题?

当然是用三级缓存来解决循环依赖问题。 那二级缓存能解决吗&#xff1f; 首先我们要知道Spring bean的生命周期 1.实例化&#xff08;new&#xff09; 2.属性赋值&#xff08;populate&#xff09; 3.初始化 一堆钩子函数&#xff08;动态代理的生成也在这一步&#xff09…

【机器学习】卷积神经(CNN)在图像识别中的革命性应用:自动驾驶的崛起

卷积神经网络&#xff08;CNN&#xff09;在图像识别中的革命性应用&#xff1a;自动驾驶的崛起 一、卷积神经网络&#xff08;CNN&#xff09;的基本原理二、CNN在图像识别中的显著成果三、CNN在自动驾驶汽车中的物体检测和识别四、CNN在图像识别中的代码实例 随着人工智能和深…

一、RocketMQ基本概述与部署

RocketMQ基本概述与安装 一、概述1.MQ概述1.1 用途1.2 常见MQ产品1.3 MQ常用的协议 2.RocketMQ概述2.1 发展历程 二、相关概念1.基本概念1.1 消息&#xff08;Message&#xff09;1.2 主题&#xff08;Topic&#xff09;1.3 标签&#xff08;Tag&#xff09;1.4 队列&#xff0…