繼上一篇控制觸控核心和頻率一文大約有4個月之久了, 這個方法很早之前就有發現, 遲遲沒有發文分享.
在上兩篇文章中知道上我們可以透過修改 cpufreq_limited_max_freq_by_user 來自定義最高頻率
但是這遠遠不足大家所期望的限核, 而後文提到在觸控時限核也只是僅僅在放寬觸控時增頻的標準
這邊教大家兩種方式, 如何強制限制開啟核心數
首先進到 /proc/hps/num_limit_thermal 將預設的 8 和改為想要的數字 就是最大開啟核心數
然而如果你是使用MIUI的話, 你可以依照各個場景來控制最大核心數
/proc/hps/num_limit_low_battery # 低電源模式
/proc/hps/num_limit_power_serv # 省電模式
/proc/hps/num_limit_thermal # 一般場景
/proc/hps/num_limit_ultra_power_saving # 極度省電模式
因小弟很久很久沒有用MIUI了, 所以我也不清楚哪些條件會觸發這些場景.
目前知道的是一般場景的設定值一定能在 MIUI/AOSP/CM/Mokee ... 等 ROM 起作用
再來下面這個選項可能也滿好玩的, 也就是將 mtk_hotplug_strategy 功能關閉
這個功能在MTK上是類似將所有核心做鏡像投射, 然後再透過 hotplug_strategy 來做多核心的調度
如果將這個功能關閉的話將會出現所有核心的調度等同於 cpu0
只要將 /proc/hps/enabled 由預設的 1 改為 0 就可以關閉這個功能
然而原本這個設定只會帶來更多負擔(負優化) 但是如果拿來做實驗的話那可是最好的工具,
怎麼說呢? 因為一旦將這個多核控制關閉的話, 一樣可以手動來控制和新的開啟數, 而且是可以透過任何調核硬重置軟體來指定的.
因此, 為了求出MT6795在各頻率及核心數的最佳數目時就需要來手動驗證了:
以下使用的是 @lingd1234567 的 SFstatistic . 這個軟體是用來統計及記錄手機運行時在各廠景及動作時的掉幀率, 又透過任一款螢幕動作錄製軟體可以做出一模一樣的動作, 因此可得出在各頻率及各開啟核心數下的掉幀表現.
以下是測試方法:
1. 先將 /proc/hps/enabled 改為手動模式, 也就是將多核控制關閉
2. 將 governor(核心調度政策) 改為 performance, 強制讓核心處於最高頻率
3. 控制核心數可透過任一款CPU控制軟體來開關
4. 最高頻率可透過 cpufreq_limited_max_freq_by_user 來定義
5. 任一款可錄製動作的軟體, 讓所有時間和動作一致
6. 透過 SFstatistic 得出掉幀數及掉幀率
(因圖片先行發於XDA-Developer 故為英文)
第一張圖的結果是將頻率固定在 1950MHz 然後控制最大核心數由1 - 8核
基於以上實驗方法得出下圖X軸為核心數 Y軸為掉幀數
可以發現在開啟3核之後的掉幀數幾乎一模一樣
第二張圖的結果是將核心數固定在6核然後控制最高頻率值由 403 - 1950 MHz
基於以上實驗方法得出下圖X軸為頻率值 Y軸為掉幀數
小弟懶惰所以才做6核, 但是可以發現在開啟一樣的核心數時, 頻率升高到1326MHz 後似乎對掉幀數一點影響也沒有...
由以上兩張圖可以得知簡單結論:
1. 當頻率相同時, 三核以上謂為浪費
2. 當核心數一樣時, 1326MHz 以上謂為浪費
3. 紅米Note2 的最佳的參考值為 最高頻率1781MHz, 最大核心數6核 應該可以應付大多日常使用, 但是重度遊戲玩家完全可忽略以上論點
在上兩篇文章中知道上我們可以透過修改 cpufreq_limited_max_freq_by_user 來自定義最高頻率
但是這遠遠不足大家所期望的限核, 而後文提到在觸控時限核也只是僅僅在放寬觸控時增頻的標準
這邊教大家兩種方式, 如何強制限制開啟核心數
首先進到 /proc/hps/num_limit_thermal 將預設的 8 和改為想要的數字 就是最大開啟核心數
然而如果你是使用MIUI的話, 你可以依照各個場景來控制最大核心數
/proc/hps/num_limit_low_battery # 低電源模式
/proc/hps/num_limit_power_serv # 省電模式
/proc/hps/num_limit_thermal # 一般場景
/proc/hps/num_limit_ultra_power_saving # 極度省電模式
因小弟很久很久沒有用MIUI了, 所以我也不清楚哪些條件會觸發這些場景.
目前知道的是一般場景的設定值一定能在 MIUI/AOSP/CM/Mokee ... 等 ROM 起作用
再來下面這個選項可能也滿好玩的, 也就是將 mtk_hotplug_strategy 功能關閉
這個功能在MTK上是類似將所有核心做鏡像投射, 然後再透過 hotplug_strategy 來做多核心的調度
如果將這個功能關閉的話將會出現所有核心的調度等同於 cpu0
只要將 /proc/hps/enabled 由預設的 1 改為 0 就可以關閉這個功能
然而原本這個設定只會帶來更多負擔(負優化) 但是如果拿來做實驗的話那可是最好的工具,
怎麼說呢? 因為一旦將這個多核控制關閉的話, 一樣可以手動來控制和新的開啟數, 而且是可以透過任何調核硬重置軟體來指定的.
因此, 為了求出MT6795在各頻率及核心數的最佳數目時就需要來手動驗證了:
以下使用的是 @lingd1234567 的 SFstatistic . 這個軟體是用來統計及記錄手機運行時在各廠景及動作時的掉幀率, 又透過任一款螢幕動作錄製軟體可以做出一模一樣的動作, 因此可得出在各頻率及各開啟核心數下的掉幀表現.
以下是測試方法:
1. 先將 /proc/hps/enabled 改為手動模式, 也就是將多核控制關閉
2. 將 governor(核心調度政策) 改為 performance, 強制讓核心處於最高頻率
3. 控制核心數可透過任一款CPU控制軟體來開關
4. 最高頻率可透過 cpufreq_limited_max_freq_by_user 來定義
5. 任一款可錄製動作的軟體, 讓所有時間和動作一致
6. 透過 SFstatistic 得出掉幀數及掉幀率
(因圖片先行發於XDA-Developer 故為英文)
第一張圖的結果是將頻率固定在 1950MHz 然後控制最大核心數由1 - 8核
基於以上實驗方法得出下圖X軸為核心數 Y軸為掉幀數
可以發現在開啟3核之後的掉幀數幾乎一模一樣
第二張圖的結果是將核心數固定在6核然後控制最高頻率值由 403 - 1950 MHz
基於以上實驗方法得出下圖X軸為頻率值 Y軸為掉幀數
小弟懶惰所以才做6核, 但是可以發現在開啟一樣的核心數時, 頻率升高到1326MHz 後似乎對掉幀數一點影響也沒有...
由以上兩張圖可以得知簡單結論:
1. 當頻率相同時, 三核以上謂為浪費
2. 當核心數一樣時, 1326MHz 以上謂為浪費
3. 紅米Note2 的最佳的參考值為 最高頻率1781MHz, 最大核心數6核 應該可以應付大多日常使用, 但是重度遊戲玩家完全可忽略以上論點