android 如何手动去设置CPU核数,关闭thermal验证performance问题

android 如何手动去设置CPU核数,关闭thermal验证performance问题

[DESCRIPTION]

因CPU或者DVFS设置不同,或Thermal过高而导致性能下降,如何通过adb命令进行设置

[SOLUTION]

对于是否由于CPU或者DVFS不同引起的问题,可以通过下面的命令验证:

首先取得root权限: 请参考FAQ11862 user版本如何打开root权限

手动设定CPU core数量:

setup:(务必先下setup部分,才能下定频定核相关命令)

不同平台,设置会有差别,下面针对MT6795 相关类似平台

adb shell "echo 0 > /proc/hps/enabled" (关闭cpu hotplug)

adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" (固定最高频)

开启CPU1~CPU7(CPU0 always on)

adb shell "echo 1 > /sys/devices/system/cpu/cpu1/online"

adb shell "echo 1 > /sys/devices/system/cpu/cpu2/online"

......

关闭CPU1~CPU7(CPU0 always on)

adb shell "echo 0 > /sys/devices/system/cpu/cpu1/online"

adb shell "echo 0 > /sys/devices/system/cpu/cpu2/online"

......

Note: echo 1 打开,echo 0 关掉

恢复最初 cpu core设置

adb shell “echo 1 > /proc/hps/enabled”

adb shell "echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

手动设定大小核freq

请根据oppidx档位设定:(oppidx档位请参考以下cat出来的idx)

adb shell "cat/proc/cpufreq/cpufreq_ptpod_freq_volt"

如:(设定最高频率)

adb shell "echo 0 >/proc/cpufreq/cpufreq_oppidx" (idx :0 is CPU frequency mapping)

对于是否系统过热而引起的性能差异判断方式:

为避免thermal关闭cpu,导致performance差异 ,关闭thermal测试:

adb shell “echo 120000 130000 >/proc/cpufreq/cpufreq_ptpod_temperature_limit”

adb shell "/system/bin/thermal_manager/etc/.tp/.th120.mtc" (重启后失效)

adb shell "echo 0 > /proc/cpufreq/cpufreq_limited_power"

相关推荐