Android bootchart 分析启动性能工具使用
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 示例


相关文章:
Android bootchart 分析启动性能工具使用
bootchart简介 bootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像,可以用作进入 systrace 之前的快速健全性检查。 1. 板端配置: 在Android 板端启用 bootchart,请运行以下命令: 2. Bootch…...
一键开启,盲盒小程序里的梦幻奇遇
在这个充满惊喜与未知的数字时代,盲盒小程序以其独特的魅力成为了许多人的新宠。只需一键开启,你就能踏入一个充满梦幻奇遇的世界,探索未知的惊喜与乐趣。 盲盒小程序不仅仅是一个简单的购物平台,它更是一个充满神秘与惊喜的宝藏库…...
如何进行并行执行的诊断与调优 —— 《OceanBase 并行执行》系列 6
在诊断并行执行问题时,我们可以从两个主要方面展开分析。首先,从整体系统层面进行考量,比如检查网络是否畅通、磁盘IO是否过载、CPU资源是否已用满;其次,针对具体的SQL语句进行深入剖析,定位问题SQL&#x…...
【Ubuntu系统hgfs共享文件夹不显示问题解决】
问题描述:为了实现本地物理机与虚拟机之间的文件传输,我们通常采用共享文件夹的方式。但是在Vmware虚拟机使用Ubuntu系统的过程中,由于某种特殊或意外原因,Ubuntu系统或发生/mnt/hgfs共享文件夹丢失不显示的问题。以下是本次问题发…...
C++的相关知识集
1、C概述 1 两大编程思想 c语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c继承了c语言高效,简洁,快速和可移植的传统。 2 起源 与c语言一样,c也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼斯特劳斯特卢普)在2…...
解决Jmeter报错 :Error generating the report: java.lang.NullPointerException
当我们在使用命令行的方式来执行jmeter 脚本的时候,例如 ./jmeter -n -t /opt/jmeter/script/test.jmx -Juser50 -Jtime100 -l /opt/jmeter/script/restult2.jtl 上面脚本的含义解释如下: -n -t 通过命令行的方式执行脚本test.jmx -Juser50 并发用户…...
QT外部库:zlib
前言 新建项目:pro文件中新增代码 LIBS -lz 在main.cpp函数中#include "zlib.h",如果此时运行代码提示没有找到对应的函数,那么就qt安装目录:D:\C\qt5.12.7\Tools\mingw730_64\x86_64-w64-mingw32\include(这里是博主…...
钡铼技术BL205模块分布式IO集成应用风电场状态监测
在风力发电这一绿色能源领域,高效、精确的状态监测对于提升风电场运维效率、保障设备安全运行至关重要。随着工业4.0和数字化转型浪潮的推进,传统的监测方式已难以满足日益增长的数据处理与分析需求。钡铼技术BL205模块的出现,为风电场状态监…...
java博客目录
博客目录 基础知识 集合列表 List ArrayList: LinkedList: Set Map TreeMap 设计模式 单例模式: 工厂方法...
从零开始学习Linux(8)----自定义shell
shell从用户读入字符串“ls”,shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序,并等待这个进程结束。所以要写一个shell&…...
《大数据分析-数据仓库项目实战》学习笔记
目录 基本概念 数据仓库 数据仓库整体技术架构 数据仓库主题 数据集市 数据仓库的血缘关系 数据仓库元数据管理 数据仓库的指标 数据仓库维度概念 HDFS Flume Hadoop Kafka 数据仓库分层模型 Superset 即席查询 Sqoop Atlas元数据管理 项目需求描述 系统目标…...
JDK介绍
JDK是Java Development Kit的缩写,是Oracle公司提供的用于开发Java应用程序的开发包。它包括了Java运行环境(Java Runtime Environment),以及一系列Java工具(如javac、java、jdb等)和Java基础类库ÿ…...
JavaScript 对象入门:基础用法全解析
目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…...
如何获得一个Oracle 23ai数据库(docker容器)
准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 方法包括3种,本文介绍第3种: Virtual ApplianceRPM安装Docker 我已经有了一台Oracle Linux 8的虚机&#x…...
想跨境出海?云手机提供了一种可能性
全球化时代,越来越多的中国电商开始将目光投向了海外市场。这并不是偶然,而是他们在长期的市场运营中,看到了出海的必要性和潜在的机会。 中国的电商市场无疑是全球最大也最发达的之一。然而,随着市场的不断发展和竞争的日益加剧…...
制药行业新突破:CANOpen转PROFINET网关配置案例解析
在药品制造工业环境中,实现CanOpen转Profinet协议之间转换的网关配置是一个关键过程,确保了不同通信协议的设备能够互相协作。以开疆智能CanOpen转Profinet网关为例,以下是其配置流程:首先安装CanOpen转Profinet网关的配置软件&am…...
vue前端时间段选择控件
实现效果: 可选具体的某天的某时某分某秒 vue前端代码: <el-form-item label"日期"><el-date-pickerv-model"daterangerq"style"width: 240px"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separat…...
用wordpress建外贸独立站的是主流的外贸建站方式
WordPress因其易用性、灵活性和强大的功能支持,成为了外贸企业首选的网站建设平台。 从技术和功能角度来看,WordPress提供了丰富的主题和插件,这些都是构建专业外贸网站所必需的。例如,有专门为外贸网站设计的主题和插件…...
差异基因散点图绘制教程
差异基因散点图绘制教程 本期教程 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学,可免费获得自2021年11月份至今全部教程,教程配备事例数据和相…...
Windows安装多版本MySQL
5.7 - 配置 my.ini [client] port 3307[mysql] default-character-set utf8mb4[mysqld] port 3307 server_id 1 character-set-server utf8mb4basedir "E://MySQL/mysql5.7" datadir "E://MySQL/mysql5.7/data"# 将所有表名转换为小写字母 lower_c…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
