性能分析工具 — bootchart 工具使用(android 8.1)

bootchart 是一个用于 linux 启动过程性能分析的开源工具软件,在系统启动过程中自动收集 CPU 占用率、磁盘吞吐率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。

bootchart 让用户可以很直观的查看系统启动的过程和各个过程耗费的时间,以便让用户能够分析启动过程,从而进行优化以提高启动时间。

它由 bootchartd 服务和 bootchart-render 两部分组成,后者主要负责生成启动流程的分析结果图。

bootchart官网

2. bootchart 在 android8.1 中的应用

Android 系统源码中有 bootchart 的实现,路径在 system/core/init/bootchart.cpp 中, bootchart 通过内嵌在 init 进程中实现,在后台执行测量。不过 bootchart 的测量时段是 init 进程启动之后,不包含 uboot 和 kernel 的启动时间。

3. bootchart 在 android 平台的使用步骤

在 android 源码路径 system/core/init/README.md 中包含了对 bootchart 的使用说明。

3.1. 编译 bootchart

在 Android 5.1 之前 bootchart 是没有编译进系统的,需要使用下面的宏手动打开编译,在 Android 6.0 以上系统默认已经编译了 bootchart,可以 adb shell 命令进入文件系统,可以看到 data 下面已经有 bootchart 的目录了。

rk3288:/data/bootchart # ls

 
 
  • 1
  • 2
3.2 打开 bootchart 收集开机数据
1. adb shell 'touch /data/bootchart/enabled'
   首先使能 bootchart,bootchart 操作的前提是存在 enable 标记,所以
   在你不需要收集数据的时候别忘了删除这个标记。

2. - sudo apt-get install pybootchartgui
   - $ANDROID_BUILD_TOP/system/core/init/grab-bootchart.sh
   grab-bootchart.sh 脚本是 Google 封装的一系列操作的合集跟使用下面手动操作的结果是一样的。

   * 手动操作
   1. (可选) echo $TIME_OUT > /data/bootchart/start
   添加 bootchart timeout 时间
   2. reboot 重启
   3. 可以看到 bootchart 生成的数据文件和 log 都被保存在 /data/bootchart 路径下
   4. tar -zcf boochart.tgz *
   5. 使用 adb pull 命令将文件拷贝出来
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
3.3 在 Linux PC 机上生成 bootchart 图表
PC 机安装 bootchart 工具
sudo apt-get install bootchart
sudo apt-get install pybootchartgui 
 
 
  • 1
  • 2
生成 bootchar 图表

拷贝 bootchart.tgz 到 PC 中,并执行下面的命令生成图表

bootchart bootchart.tgz
 
 
  • 1
4. bootchart 图形分析小技巧

image

整个图表以时间线为横轴,图标上方为 CPU 和 磁盘的利用情况,下方是各进程的运行状态条,显示各个进程的开始时间与结束时间以及对 CPU、I/O 的利用情况,我们关心的各个进程的运行时间以及 CPU 的使用情况,进而优化系统。

  1. 可以通过 Laucher 的启动时间判断开机完成完成时间
  2. 通过进程的时间长短判断是否存在异常,如图表上的 第一个 Zygote 进程启动时间很短,显示存在异常,后又成功心启动了一遍。
  3. 待补充
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
众所周知,人工智能是当前最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目前,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
Android 8.1Android操作系统的一个版本,它是在Android 8.0基础上进行了改进和优化的最新版本。Android 8.1引入了一些新的功能和改进,例如:自适应标,通知渠道,自动填充框架等。自适应标功能使得应用程序的标可以适应不同的设备和启动器,提供更好的用户体验。通知渠道则使得用户能够更好地管理和控制应用程序发送的通知,减少了用户被打扰的可能性。自动填充框架则简化了用户在输入表单时填写信息的操作,提高了用户填写表单的效率。 Android Studio是开发Android应用程序的集成开发环境。通过Android Studio,开发者可以创建、编辑、调试和测试Android应用程序。在Android Studio中,可以通过“设置”功能对开发环境进行个性化和配置调整。在“设置”菜单中,开发者可以选择和配置不同的主题和UI风格,调整代码编辑器的显示和行为,还可以选择不同的编程语言和版本进行开发。此外,开发者还可以设置和管理各种插件和工具,以满足自己的需求。Android Studio的“设置”功能提供了丰富的选项和配置,使得开发者能够根据自己的喜好和需要对开发环境进行个性化定制,提高了开发效率和舒适度。 总而言之,Android 8.1Android操作系统的最新版本,它引入了一些新的功能和改进,提供了更好的用户体验。Android Studio是一款用于开发Android应用程序的集成开发环境,它提供了丰富的个性化和配置选项,使得开发者能够根据自己的需求对开发环境进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值