1. CPU调频策略
操作系统会根据当前CPU负载调整CPU的频率,以达到满足当前使用的前提下降低电量消耗。主要的调配模式有以下几种:
Ondemand:按需模式
按需调节CPU频率,不操作手机时控制在最低频率,滑屏或进入应用时会迅速提升至最高频率,当空闲时又会迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般水平。是一种电池和性能之间趋向平衡的默认模式,但是对于智能手机来说,ondemand在性能表现方面略有欠缺。
Interactive:交互模式
和ondemand模式相似,规则是“快升慢降”,注重响应速度、性能,当有高需求时迅速跳到高频率,当低需求时逐渐降低频率,相比ondemand费电,性能略好。
Conservative:保守模式
和ondemand模式相似,规则是“慢升快降”,注重省电,当有高需求时逐渐提高频率,当低需求时迅速跳至低频率。
Hotplug:热插拔模式:
和ondemand模式差不多,当有高需求时直接跳至最高频率,当需求减小时逐渐降低频率,但关屏时就单核低频运行,省电。
Performance:高性能模式
按照设定范围的最高频率运行,即使系统负载非常低,CPU也运行在最高频率。性能很好,功耗高。
Powersave:省电模式
按设定范围的最低频率运行,日常没有使用价值,除非配合setcpu情景模式,关屏睡眠时使用此模式,省电但系统响应速度慢。
Userspace:用户模式:
任何情况下都会控制CPU运行在配置的频率范围内,配置中的用户自己添加的省电设置,在此情景模式下,降低CPU最大运行频率可以延迟待机时间,但同时会降低机器的唤醒速度,不建议使用该选项。
2. CPU相关属性查看
CPU相关信息可以在/sys/devices/system/cpu/目录下的节点查看,例如最高频率、最低频率、当前频率、可用频率、支持的调频策略及当前调频策略等。
多核的情况下,目录下会有cpu0,cpu1,cpu2......,以cpu0为例介绍如何查看相关信息:
cd /sys/devices/system/cpu/cpu0/cpufreq
cat affected_cpus 改变配置影响的CPU list
cat cpuinfo_cur_freq 当前频率
cat cpuinfo_max_freq 最大频率
cat cpuinfo_min_freq 最小频率
cat scaling_available_frequencies 可用频点,CPU会在这些频点之间进行升降频
cat scaling_available_governors 可用调频策略, 当前设置的调频策略需是其中之一
cat scaling_governor 当前调频策略
3. CPU调频策略调整
a.获取CPU支持的调频策略
cat scaling_available_governors #如 interactive conservative ondemand powersave performance
b.设置策略
echo scaling_governor performance
操作系统会根据当前CPU负载调整CPU的频率,以达到满足当前使用的前提下降低电量消耗。主要的调配模式有以下几种:
Ondemand:按需模式
按需调节CPU频率,不操作手机时控制在最低频率,滑屏或进入应用时会迅速提升至最高频率,当空闲时又会迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般水平。是一种电池和性能之间趋向平衡的默认模式,但是对于智能手机来说,ondemand在性能表现方面略有欠缺。
Interactive:交互模式
和ondemand模式相似,规则是“快升慢降”,注重响应速度、性能,当有高需求时迅速跳到高频率,当低需求时逐渐降低频率,相比ondemand费电,性能略好。
Conservative:保守模式
和ondemand模式相似,规则是“慢升快降”,注重省电,当有高需求时逐渐提高频率,当低需求时迅速跳至低频率。
Hotplug:热插拔模式:
和ondemand模式差不多,当有高需求时直接跳至最高频率,当需求减小时逐渐降低频率,但关屏时就单核低频运行,省电。
Performance:高性能模式
按照设定范围的最高频率运行,即使系统负载非常低,CPU也运行在最高频率。性能很好,功耗高。
Powersave:省电模式
按设定范围的最低频率运行,日常没有使用价值,除非配合setcpu情景模式,关屏睡眠时使用此模式,省电但系统响应速度慢。
Userspace:用户模式:
任何情况下都会控制CPU运行在配置的频率范围内,配置中的用户自己添加的省电设置,在此情景模式下,降低CPU最大运行频率可以延迟待机时间,但同时会降低机器的唤醒速度,不建议使用该选项。
2. CPU相关属性查看
CPU相关信息可以在/sys/devices/system/cpu/目录下的节点查看,例如最高频率、最低频率、当前频率、可用频率、支持的调频策略及当前调频策略等。
多核的情况下,目录下会有cpu0,cpu1,cpu2......,以cpu0为例介绍如何查看相关信息:
cd /sys/devices/system/cpu/cpu0/cpufreq
cat affected_cpus 改变配置影响的CPU list
cat cpuinfo_cur_freq 当前频率
cat cpuinfo_max_freq 最大频率
cat cpuinfo_min_freq 最小频率
cat scaling_available_frequencies 可用频点,CPU会在这些频点之间进行升降频
cat scaling_available_governors 可用调频策略, 当前设置的调频策略需是其中之一
cat scaling_governor 当前调频策略
3. CPU调频策略调整
a.获取CPU支持的调频策略
cat scaling_available_governors #如 interactive conservative ondemand powersave performance
b.设置策略
echo scaling_governor performance