有些手機電源管理中的均衡模式和性能模式是否存在著矛盾?

我的理解是均衡模式是SoC自由調頻,運行大型程序自動高,程序後台時自動低;而性能模式是點亮屏幕後SoC就一直保持較高的頻率,但這樣隨之問題又來了,較高頻率會導致SoC快速發熱,發熱後又會導致降低頻率,這樣不就本末倒置了?

我認為開性能模式如果只是爽一時的話根本就沒有任何意義,IOS從來沒有電源模式之分,而直到IOS9才添加了省電模式。

所以性能模式對用戶體驗有沒有真實的意義?


均衡模式和性能模式這些是廠商根據自己需求定製的功能,所以各家都有不同,但是基本都是基於linux的電源管理模型,原理都差不多

我來說說小米4,不一定說得對

小米4的電源管理主要靠兩個文件來配置

/system/etc/thermal-engine-8974.conf

/system/bin/changepowermode.sh

thermal-engine-8974.conf

sampling 5000

[CPU0_MONITOR]
algo_type monitor
sensor cpu0
sampling 1000
thresholds 55000 60000 65000 70000 85000 105000 115000
thresholds_clr 50000 55000 60000 66000 80000 90000 110000
actions cpu cpu cpu cpu cpu cpu shutdown
action_info 1728000 1497600 1190400 1036800 960000 6528000 0

[CPU1_MONITOR]
algo_type monitor
sensor cpu1
sampling 65
thresholds 115000
thresholds_clr 110000
actions shutdown
action_info 0

[CPU2_MONITOR]
……
[CPU3_MONITOR]
……

這裡面設置了根據cpu溫度調節主頻。溫度到達55℃頻率降到1.728GHz,如果從55℃降會50℃就會解除限制。後面也是這樣解讀

這個55℃什麼概念呢。我測試了一下,打開AIDA64看到cpu溫度在30℃浮動,然後打開RAR運行性能測試然後立即切換回AIDA64(RAR的性能測試還在後台運行),cpu溫度已經在超過55℃了。但是注意:看到的溫度和上面用於調節頻率的溫度都是從感測器讀取的,不是說cpu一定這個溫度。

changepowermode.sh

#!/system/bin/sh

target=`getprop ro.product.model`
powermode=`getprop persist.sys.aries.power_profile`
dev_governor=`ls /sys/class/devfreq/qcom,cpubw*/governor`
case "$target" in
……
"LEO "* | "MI 4"* | "MI NOTE"* | "VIRGO"*)
case "$powermode" in
"high")
stop mpdecision
sleep 1
echo 1 &> /sys/devices/system/cpu/cpu1/online
echo 1 &> /sys/devices/system/cpu/cpu2/online
echo 1 &> /sys/devices/system/cpu/cpu3/online
echo 1 &> /sys/devices/system/cpu/cpu1/online
echo 1 &> /sys/devices/system/cpu/cpu2/online
echo 1 &> /sys/devices/system/cpu/cpu3/online
echo 2457600 &> /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo performance &> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance &> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo performance &> /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo performance &> /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
echo 20 &> /sys/module/cpu_boost/parameters/boost_ms
echo 1728000 &> /sys/module/cpu_boost/parameters/sync_threshold
echo 1497600 &> /sys/module/cpu_boost/parameters/input_boost_freq
echo 40 &> /sys/module/cpu_boost/parameters/input_boost_ms
echo 255 &> /sys/class/leds/lcd-backlight/max_brightness
echo 578000000 &> /sys/class/kgsl/kgsl-3d0/max_gpuclk
echo performance &> /sys/class/kgsl/kgsl-3d0/devfreq/governor
echo "msm_cpufreq" &> $dev_governor
;;
"middle")
echo interactive &> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo interactive &> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo interactive &> /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo interactive &> /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
echo 2457600 &> /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 2457600 &> /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo "20000 1400000:40000 1700000:20000" &> /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
echo 90 &> /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
echo 1190400 &> /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
echo "85 1500000:99" &> /sys/devices/system/cpu/cpufreq/interactive/target_loads
echo 40000 &> /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
echo 20 &> /sys/module/cpu_boost/parameters/boost_ms
echo 1497600 &> /sys/module/cpu_boost/parameters/sync_threshold
echo 1190400 &> /sys/module/cpu_boost/parameters/input_boost_freq
echo 40 &> /sys/module/cpu_boost/parameters/input_boost_ms
echo 255 &> /sys/class/leds/lcd-backlight/max_brightness
echo 578000000 &> /sys/class/kgsl/kgsl-3d0/max_gpuclk
echo msm-adreno-tz &> /sys/class/kgsl/kgsl-3d0/devfreq/governor
echo "cpubw_hwmon" &> $dev_governor
start mpdecision
;;
esac
;;
esac

這裡定義了性能模式和均衡模式的具體內容

high:性能模式

四核強制開啟

頻率固定在2.4576GHz

CPU模式performance

GPU模式performance

這就是單純為跑分而設的尼瑪!鎖屏都會燙手,日常誰開性能模式誰傻

middle:均衡模式

CPU模式interactive

頻率最高2.4576GHz

go_hispeed_load = 90(大概是CPU使用率達到90%進入高速狀態)

hispeed_freq = 1190400(高速狀態的頻率是1.1904GHz,WTF!)

還有些參數不太懂,CPU模式的具體實現在內核里要扒源代碼才能看到。

但是根據這些設定似乎是CPU最高頻率只允許1.1904GHz一下子砍掉一半性能。

WTF!

一個跑分模式一個憋屈模式,就是不給你好好用的省心模式,以前我用的LG G2不提供這模式那模式的,但是人家既不會砍掉性能還能續航榜上有名。


有啊。我魅藍note跑安兔兔每次都會提示你切換到性能模式——這樣跑出來的分高啊。而且每次也就打幾分鐘雞血而已,不至於降頻。

總結一下,性能模式(也就是核心頻率火力全開模式)是用來跑分的。

而均衡模式是用來實際使用的(跑遊戲時,CPU會自動把頻率艹到最高)


那幾家安卓大廠的系統里向來只能開啟關閉省電模式。。。三星還多個超級省電。。。你說所謂性能模式均衡模式有用嗎?


mx5性能模式,沒有降頻過啊,只是開著性能模式插著電源玩遊戲,過一會倒充電就自己沒電關機了。。,不插電源掉電更快。


推薦閱讀:

小米A&D每日吸膠原蛋白,是作惡嗎?
如何評價米家TS變色近視護目眼鏡?
如何評價小米5s的超聲波指紋識別方案?
TechCrunch 等媒體對小米科技抄襲和侵權的報道會不會影響小米的國際化?
如何評價yeelight床頭燈249元的售價?

TAG:手機 | 小米科技 | 魅族科技 | SoC | 驍龍處理器Snapdragon |