Android 开机时间分析工具-----perfboot

Android系统自带了一个非常好用的工具:perfboot.py
android/system/core/init/perfboot.py
这个工具是用来干什么的呢?通过名字就能看出来个大概。boot的performance。
看看该文件的一个说明:
This script repeats the record of each event log during Android boot specified times. By default, interval between measurements is adjusted in such a way that CPUs are cooled down ufficiently to avoid boot time slowdown caused by CPU thermal throttling. The result is output in a tab-separated value format.

就是通过读取Android系统的log输出,来定位开机过程中不同阶段的时间。

给脚本还给出了使用用例:
Examples:

Repeat measurements 10 times. Interval between iterations is adjusted based on
CPU temperature of the device.

$ ./perfboot.py --iterations=10

**Repeat measurements 20 times. 60 seconds interval is taken between each
iteration.**

$ ./perfboot.py --iterations=20 --interval=60

Repeat measurements 20 times, show verbose output, output the result to
data.tsv, and read event tags from eventtags.txt.

$ ./perfboot.py --iterations=30 -v --output=data.tsv --tags=eventtags.txt

主要是三个参数:
1.重复次数 –iterations=10 获取10次数据
2.每次之间的间隔时间。 –interval=60 每次的时间间隔是60s
3.输出结果路径 -v –output=data.tsv 得到的结果写到data.tsv文件中。
主要是过滤如下的日志信息:

The default event tags to record.

_DEFAULT_EVENT_TAGS = [
‘boot_progress_start’,
‘boot_progress_preload_start’,
‘boot_progress_preload_end’,
‘boot_progress_system_run’,
‘boot_progress_pms_start’,
‘boot_progress_pms_system_scan_start’,
‘boot_progress_pms_data_scan_start’,
‘boot_progress_pms_scan_end’,
‘boot_progress_pms_ready’,
‘boot_progress_ams_ready’,
‘boot_progress_enable_screen’,
‘sf_stop_bootanim’,
‘wm_boot_animation_done’,
]

$ ./perfboot.py –iterations=5 –interval=30 -v –output=bootdata.tsv

下图是我得到了五组开机时间数据,求出平均值得到的开机时间图。下面就可以开始分析了。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/manjianchao/article/details/80515191