1、概览
展锐将常用的功耗分析涉及到的工具(脚本程序)集成到手机/vendor/bin/power 目录下,以便对常见功耗 问题进行分析,功耗分析工具及功能简介详见图 1-1。
2、工具使用详解
本文以
SC9863A 为例,介绍每个工具(脚本程序)的使用方法和输出结果。
2.1 CPU
2.1.1 cpu_loading
功能
cpu_loading 程序体现 CPU 每个 core 的每个频点的闲忙程度。
程序运行时间按需设定,单位:s(秒)。
使用方法
adb shell
cd vendor/bin/power/cpu/loading
./cpu_loading -t 60
上述命令中 60 代表运行 60s,可自定义。
运行结果
cpu_loading 运行 60s 后结果如下:
输出结果显示 CPU 的分组情况,输出是二维矩阵,其中:
●第一个红框表示小核可用频点。
●第二个红框表示大核可用频点。
●cpu0、cpu1、cpu2、cpu3 属于小核 cluster0。
●cpu4、cpu5、cpu6、cpu7 属于大核 cluster1。
●Online:未拔核时,每个 CPU 运行时间对应总时间的占比。
●Offline:每个 CPU 非 online 状态的时间对应总时间的占比。
●SUM:大小核对应 sum的总和,和功耗正相关。
2.1.2 cpu_trans_table
功能
cpu_trans_table 程序是扫描 CPU 各个频点的跳变关系,脚本默认扫描 1min,20ms 采样一次。
cpu_trans_table 提供所有有关 CPU 频率的细粒度信息过渡,输出的是二维矩阵。
使用方法
adb shell
cd vendor/bin/power/cpu/trans_table
./cpu_trans_table -t 60
上述命令中 60 代表运行 60s,可自定义。
运行结果
cpu_trans_table 运行 60s 后结果如下:
输出结果中展示了每行、每列的实际 freq 值,其中: 条目<i,j>(第 i 行,第 j 列)表示 freq_i 到 freq_j 的转换次数。
2.1.3 fix_freq
功能
fix_freq 的功能是固定 CPU 大小核频率,运行过程中会提示“input fix freq”,按照提示输入固定的频率即 可。
注意:输入的固定频率须在可用频率中选取。
cur_freq 显示的频率和输入的频率一致,则代表固定成功;重启后失效,需重新设置。 分析问题时若想将 CPU 大小核频率固定在某一个频点,可使用该程序。
使用方法
adb shell
cd vendor/bin/power/cpu/fix_freq
./fix_cpu_freq
......
更多详细内容请下载附件查看