糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 如何排查开机/重启时间长问题

如何排查开机/重启时间长问题

时间:2019-01-18 15:29:20

相关推荐

如何排查开机/重启时间长问题

如何排查开机/重启时间长问题

前提条件:抓开机ylog或抓重启串口log。

开机流程:请参见客户文档的详细阶段分析。

定位开机各阶段方法:

显示开机logo时间:在uboot log中检索lcd init关键词,backlight on time:对应的时间即为logo开始显示时间。

Uboot阶段时间:在uboot log中检索consume或boot_reason关键词,enter mode normal前的时间为uboot阶段时间,正常uboot阶段时间在约8S以下为正常。

Kernel阶段时间:在kernel log中检索first stage,对应log中如[ 1.644287]的时间即为kernel阶段时间。

安卓阶段:在android log 中检索boot_progress关键词,出现如下带有时间(单位ms)的记录,并注意各阶段的影响因素。

boot_progress_start: //该时间点偏大,需考虑当前在init.rc中通过insmod装入的KO文件数量是否有客制化增加

boot_progress_preload_start: //该时间点偏大,需检索dex2oat,更新为最新mainline并注意客制化的编译配置

boot_progress_preload_end: //该时间段时间段偏大,需在log中查看preload相同数量classes took的时间,并对比测试机与对比机的IO跑分差异。

boot_progress_system_run:

boot_progress_pms_start:

boot_progress_pms_system_scan_start: //系统APK数量,IO性能

boot_progress_pms_data_scan_start:

boot_progress_pms_scan_end: //内置APK数量,IO性能

boot_progress_pms_ready:

boot_progress_ams_ready: //启动众多系统服务,pms做权限更新

boot_progress_enable_screen: //关注luncher的冷启动时间

如以上开机时间正常,但重启时间长,请抓串口log,关注停止打印log到再次打印log间隔,并在关机log中:

检索ShutdownThread,检查安卓阶段关机时间;检索jumping to kernel,并计算由此到停止打印log的时间。jumping to kernel之前时间为init进程关闭众多服务时间,并针对性排查特定服务关闭环节。如无明显错误,请对比测试机与对比机的CPU跑分差距。

开机动画时间受安卓开机过程影响,排查方法同上。

如果觉得《如何排查开机/重启时间长问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。