Android下設(shè)置CPU核心數(shù)和頻率

設(shè)置CPU的核心數(shù)

在/sys/devices/system/cpu目錄下可以看到你的CPU有幾個(gè)核心,如果是雙核,就是cpu0和cpu1,如果是四核,還會(huì)加上cpu2和cpu3。隨便進(jìn)一個(gè)文件夾,比如cpu1,里面有個(gè)online文件。我們可以用cat命令查看該文件的內(nèi)容:

cat /sys/devices/system/cpu/cpu1/online

這個(gè)文件只有一個(gè)數(shù)字,0或1。0表示該核心是offline狀態(tài)的,1表示該核心是online狀態(tài)的。所以,如果你想關(guān)閉這個(gè)核心,就把online文件的內(nèi)容改為“0”;如果想打開(kāi)該核心,就把文件內(nèi)容改為“1”。

echo "0" > /sys/devices/system/cpu/cpu0/online # 關(guān)閉該CPU核心
echo "1" > /sys/devices/system/cpu/cpu0/online # 打開(kāi)該CPU核心

設(shè)置CPU的頻率

首先我們要修改governor的模式,但在修改前需要查下CPU支持哪些governor的模式

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

我用的是Nexus 4手機(jī),所以有以下5個(gè)選擇,其他的手機(jī)型號(hào)可能略有不同

conservative ondemand userspace powersave interactive performance

關(guān)于這些模式,具體解釋如下:

  1. ondemand:系統(tǒng)默認(rèn)的超頻模式,按需調(diào)節(jié),內(nèi)核提供的功能,不是很強(qiáng)大,但有效實(shí)現(xiàn)了動(dòng)態(tài)頻率調(diào)節(jié),平時(shí)以低速方式運(yùn)行,當(dāng)系統(tǒng)負(fù)載提高時(shí)候自動(dòng)提高頻率。以這種模式運(yùn)行不會(huì)因?yàn)榻殿l造成性能降低,同時(shí)也能節(jié)約電能和降低溫度。一般官方內(nèi)核,還有CM7的默認(rèn)的方式都是ondemand。流暢度: 一般,流暢
  1. interactive:交互模式,直接上最高頻率,然后看CPU負(fù)荷慢慢降低,比較耗電。 流暢度: 最高,極流暢 Interactive 是以 CPU 排程數(shù)量而調(diào)整頻率,從而實(shí)現(xiàn)省電。InteractiveX 是以 CPU 負(fù)載來(lái)調(diào)整 CPU 頻率,不會(huì)過(guò)度把頻率調(diào)低。所以比 Interactive 反應(yīng)好些,但是省電的效果一般
  2. conservative:保守模式,類(lèi)似于ondemand,但調(diào)整相對(duì)較緩,想省電就用他吧。Google官方內(nèi)核,kang內(nèi)核默認(rèn)模式。 流暢度: 高,流暢
  3. smartass:聰明模式,是I和C模式的升級(jí),該模式在比i模式不差的響應(yīng)的前提下會(huì)做到了更加省電流暢度: 最高,流暢
  4. performance:性能模式!只有最高頻率,從來(lái)不考慮消耗的電量,性能沒(méi)得說(shuō),但是耗電量.......流暢度:還需要說(shuō)么?還有比這種模式更流暢的嗎?
  5. powersave 省電模式,通常以最低頻率運(yùn)行,打不死我也不用。流暢度: 極低 ?
  6. userspace:用戶自定義模式,系統(tǒng)將變頻策略的決策權(quán)交給了用戶態(tài)應(yīng)用程序,并提供了相應(yīng)的接口供用戶態(tài)應(yīng)用程序調(diào)節(jié)CPU 運(yùn)行頻率使用。也就是長(zhǎng)期以來(lái)都在用的那個(gè)模式。可以通過(guò)手動(dòng)編輯配置文件進(jìn)行配置流暢度:根據(jù)設(shè)置而定
  7. Hotplug:類(lèi)似于ondemand, 但是cpu會(huì)在關(guān)屏下嘗試關(guān)掉一個(gè)cpu,并且?guī)в衐eep sleep,比較省電。流暢度:一般,流暢

在這里,我們將模式調(diào)整為performance

echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

然后我們對(duì)CPU的頻率進(jìn)行修改,CPU的頻率不是可以任意設(shè)置的,需要查看scaling_available_frequencies文件,看CPU支持哪些頻率。

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

從我的手機(jī)中可以獲得以下的值

126000 216000 312000 408000 600000 696000 816000 1008000 1200000 1416000 1512000 1608000 1704000 1800000

這里的頻率是以KHz為單位的,我準(zhǔn)備將cpu0設(shè)置為1.416GHz,那就將1416000寫(xiě)入scaling_setspeed即可。

echo "1416000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

設(shè)置好后,我們可以通過(guò)scaling_cur_freq文件查看當(dāng)前這個(gè)核心的頻率

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

最后我們也可以設(shè)置下CPU的最大和最小頻率,只需要將需要設(shè)置的頻率值寫(xiě)入scaling_max_freq和scaling_min_freq即可

echo "1800000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq # 設(shè)置最大頻率
echo "312000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq # 設(shè)置最小頻率

這里要注意的是最大值需要大于等于最小值

注意,如果你需要對(duì)每個(gè)online的CPU核心都進(jìn)行設(shè)置,自行修改cpux.
同時(shí)以上對(duì)文件的修改均需要root權(quán)限**

通過(guò)變化online的核心數(shù)和調(diào)整CPU頻率可以做到功耗和性能的特殊要求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 20170902 初成文 20170920 更新sdram超頻參數(shù)說(shuō)明 2017-10-05 更新內(nèi)存超頻、添加n...
    qcsunny閱讀 27,120評(píng)論 3 8
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,836評(píng)論 18 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 99,466評(píng)論 9 467
  • 話說(shuō)小女子我獨(dú)坐在辦公桌前,正在想明天的作業(yè)寫(xiě)什么?跑到寫(xiě)作群調(diào)侃,說(shuō),我的作業(yè)在天上飄",涵筠說(shuō),她的作業(yè)在水中...
    莫滴閱讀 649評(píng)論 6 5
  • 時(shí)間是下午兩點(diǎn)半,溫和略顯刺眼的陽(yáng)光照在走廊里五顏六色的畫(huà)板上,煞是好看。我和整個(gè)畫(huà)室的人都安靜的坐在畫(huà)室內(nèi),看著...
    Seattlesgirl閱讀 615評(píng)論 0 1