Android/Linux boot time分析优化
如果需要优化boot time,就需要一个量化的工具来分析每个阶段的时间消耗。这种类型的优化特别适合使用基于timeline的图表,有着明显的时间顺序。要求不但能给出整个流程消耗的时间,还要能对流程进行细化,获得每个阶段的时间。先从总体上查看优化程度,然后逐个查看异常的阶段。
分析工具化之后,可以快速的迭代,获得测试结果的平均值和均方差,已验证修改的有效性和稳定性。
基于analyze_boot.py分析Android/Linux的kernel boot时间
1.修改HiKey的BoardConfig.mk文件,使能initcall_debug,增加dmesg buffer大小。
diff --git a/hikey/BoardConfig.mk b/hikey/BoardConfig.mk |
2.adb shell dmesg保存内核log到dmesg.txt中。
adb shell dmesg > dmesg.txt |
3.使用analyze_boot.py分析dmesg.txt,生成从kernel启动到启动用户空间init之间timeline图表。
./analyze_boot.py -dmesg dmesg.txt |
4.结果分析。
整个boot情况概况如下:
查看某一个细节的启动时间,如hisi_thermal_driver_init:
工具代码分析
analyze_boot.py:https://github.com/arnoldlu/suspendresume/blob/master/analyze_boot.py
基于bootchart分析Android boot time
bootchart是一个用于分析系统启动过程的可视化工具,包括数据收集和可视化两部分。
在Android中,数据收集功能集成到初始化命令init中了。bootchart的官方信息在:http://www.bootchart.org/
bootchart大致流程是在待测设备(Android等)收集数据(bootchart.tgz),然后使用bootchart工具分析,并生成SVG等可视化图表,可以使用Inkscape或者Web Browse打开SVG进行分析。
1.安装分析工具
sudo apt-get install bootchart |
2.准备Android bootchart功能
3.触发bootchart功能
4.收集测试数据
5.生成可视化图表
pybootchartgui
Using bootchart on Android:http://elinux.org/Using_Bootchart_on_Android
Ubuntu bootchart分析
Ubuntu从15.04切换到了systemd作为init启动。
systemd-analyze作为systemd的相关命令,用于分析系统启动性能。systemd-analyze还包含一些列子命令。
systemd-analyze time和systemd-analyze一样用于显示用户空间启动前内核启动时间和用户空间启动时间。
Startup finished in 4.331s (kernel) + 42.551s (userspace) = 46.883s |
systemd-analyze blame显示以时间从长到短的启动服务列表。
8.977s NetworkManager-wait-online.service ... |
systemd-analyze critical-chain显示最耗时服务单元。
The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. graphical.target @42.534s |
systemd-analyze plot > systemd.svg
systemd-analyze dot
systemd-analyze dump
systemd-analyze set-log-level
systemd-analyze set-log-target
systemd-analyze verify
/etc/systemd/bootchart.conf
/etc/default/grub
systemd-analyze
Android/Linux boot time分析优化相关推荐
- Android/Linux Thermal框架分析及其Governor对比
https://www.cnblogs.com/arnoldlu/p/6388151.html 图表 1 Thermal框架 随着SoC性能的快速提升,功耗也极大提高,带来的负面影响是SoC的温度提高 ...
- Android 应用性能优化(4)---Android App性能评测分析-启动时间篇
Android App性能评测分析-启动时间篇 1.前言 随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,性能问题从应用的启动优化开始,下面会根据实际app性能测 ...
- android布局时长分析,Android性能优化:布局优化 详细解析(含、、讲解 )
前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的布局优化,希望你们会喜欢. 目录 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. ...
- “linux性能”工具集助力分析优化Linux
序 这段时间的工作全都扔在了Linux性能分析优化上. 看"一点"的优化,测试程序能轻松完成数据统计,并且自定义程度高:但"全局"的优化,或是在"侦查 ...
- Magisk root 原理分析之二 :Android Verified Boot (AVB)
1. Android Verified Boot (AVB) 或称 Verified Boot 2.0 简介 官方解释:验证用户设备上运行的软件完整性.它通常从设备固件的只读部分开始,该部分加载代码并 ...
- Android Linux内核编译调试
对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,跟Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不 ...
- linux启动时间极限优化,Linux启动时间的极限优化
在上次完成嵌入式应用的Linux裁减后,Linux的启动时间仍需要7s左右,虽然勉强可以接受,但仍然没有达到我个人所追求的目标--2s以内.况且,在实际的商用环境中,设备可靠性的要求可是"5 ...
- Android O 7.0 启动优化的一些思路
启动优化其实是一个比较大的命题,在一些特地的场景下,快速启动有比较强烈的需求,这篇博客主要简单的介绍一些在android O平台上的进行启动优化的思路与想法. 而优化启动的一个很重要的东西就是如何来准 ...
- Android 进阶第二篇——性能优化
Android 进阶第二篇--性能优化 一些Android书籍喜欢把性能优化放在最后的章节,简单提一提作为内容全面的点缀.在这里我将工具使用和性能优化的一些个人经验放在进阶系列博客的开始,因为我认为防 ...
最新文章
- 朝聚眼科完成4亿元B轮融资,兰馨亚洲和阳光融汇投资...
- jsp java el_jsp之EL表达式
- GetListToJson
- Cocos2dx利用intersectsRect函数检测碰撞
- 【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法
- 网站显示网页加载时间代码-Typecho
- Android 进程生命周期 Process Lifecycle
- python开发的类似stardict工具
- Vue-render函数的三个参数
- 时刻记住要做合格的程序员——一次高性能程序设计实验课后的反思
- Hadoop2.2.0中HDFS的高可用性实现原理
- 蒙特卡洛模型——有约束的非线性规划问题
- ESP32+0.96寸OLED
- 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
- macOS Catalina 以上版本使用不了 PPTP协议的(shimo 无法正常使用)
- 类似新浪微博中取消关注的弹出确认框
- android获取安卓版本,Android获取手机系统版本等信息的方法
- Clickhouse多磁盘存储
- 立创EDA学习3-绘制pcb(初级)
- 浏览器打开网页但找不到服务器ip地址 DNS错误 解决办法