最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

揭秘EcoQoS和效率模式的原理

2023-01-23 21:22 作者:二川二水的資料室  | 我要投稿

Windows 11 22H2新增的EcoQoS和效率模式讓不少人以為微軟搞出了什么很神奇的優(yōu)化魔法,我一直說(shuō)這些東西沒(méi)用,純屬圖一樂(lè)。下面就詳細(xì)講講這些東西到底做了什么。

微軟有兩個(gè)關(guān)于EcoQoS和效率模式的文章:

https://devblogs.microsoft.com/performance-diagnostics/introducing-ecoqos/

https://devblogs.microsoft.com/performance-diagnostics/reduce-process-interference-with-task-manager-efficiency-mode/


先從第二個(gè)的效率模式開(kāi)始,該文明確提到了效率模式有兩個(gè)行為:將進(jìn)程的基礎(chǔ)優(yōu)先級(jí)改為low,把QoS改為EcoQoS。

如果使用了能源之星這種軟件的話,基礎(chǔ)優(yōu)先級(jí)會(huì)被改為idle,因?yàn)榇a就是這么寫的。

https://github.com/imbushuo/EnergyStar/blob/master/EnergyStar/EnergyManager.cs

于是很多人就以為這樣做就可以做到所謂的 “限制軟件后臺(tái)行為”。沒(méi)什么好說(shuō)的,但凡給跑分軟件打開(kāi)效率模式再跑分,看看cpu占用率就知道這種說(shuō)法是站不住腳的。

一個(gè)非實(shí)時(shí)操作系統(tǒng)一般是這么調(diào)度的:所有線程按照優(yōu)先級(jí)排序,優(yōu)先級(jí)高的先用cpu,用完了再給優(yōu)先級(jí)低的線程用,優(yōu)先級(jí)低的線程使用cpu的過(guò)程可以被高優(yōu)先級(jí)的線程打斷,以便快速響應(yīng)。所有線程加起來(lái)該用多久cpu就會(huì)用多久cpu,不會(huì)因?yàn)槟承┚€程的優(yōu)先級(jí)被改低了就少用cpu。

桌面端Windows在默認(rèn)情況下給線程單次最多使用30毫秒的cpu時(shí)間(一個(gè)quantum),并且會(huì)自動(dòng)為前臺(tái)線程多分配兩個(gè)quantum以保證響應(yīng)速度。

Windows Internals Part 1 p236

Windows會(huì)自動(dòng)提升前臺(tái)進(jìn)程的優(yōu)先級(jí):

https://learn.microsoft.com/en-us/windows/win32/procthread/priority-boosts

從這個(gè)實(shí)驗(yàn)來(lái)看,一般情況下Windows會(huì)給有用戶輸入的前臺(tái)進(jìn)程提高4個(gè)優(yōu)先級(jí):

https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7

而且Windows每秒會(huì)檢查一次有哪些正在排隊(duì)等著用cpu卻因?yàn)閮?yōu)先級(jí)不夠高而一直無(wú)法使用cpu的線程,然后把這些線程的優(yōu)先級(jí)提高,并且給三個(gè)quantum。所以手動(dòng)調(diào)低大部分進(jìn)程的優(yōu)先級(jí)在絕大多數(shù)情況下是自作聰明的行為。

Windows Internals Part 1 p247

微軟說(shuō)效率模式可以提高響應(yīng)能力基本是睜眼說(shuō)瞎話。

然后來(lái)看EcoQoS,文章里提到

第一個(gè)問(wèn)題,這個(gè)東西需不需要軟件適配?文章下面的api文檔里面的說(shuō)法是:

https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation

歸類是什么意思?任務(wù)管理器里手動(dòng)打開(kāi)效率模式是歸類(見(jiàn)圖1),能源之星也可以給別的進(jìn)程啟用PROCESS_POWER_THROTTLING_EXECUTION_SPEED,就算什么都不做,Windows自己就會(huì)歸類,所以這個(gè)東西根本不需要任何軟件適配。

https://github.com/imbushuo/EnergyStar/blob/master/EnergyStar/EnergyManager.cs

第二個(gè)問(wèn)題,也是最重要的問(wèn)題,微軟說(shuō)的 “系統(tǒng)將嘗試通過(guò)降低CPU頻率或使用更節(jié)能的內(nèi)核等策略來(lái)提高電源效率” 是怎么回事?

我不信微軟有什么優(yōu)化魔法,直接注冊(cè)表打開(kāi)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Profile\Events\{54533251-82be-4824-96c1-47b60b740d00},

EcoQoS的GUID是336c7511-f109-4172-bb3a-3ea51f815ada,然后把這個(gè)GUID拿去全局搜索就知道EcoQoS的葫蘆里賣什么藥了。

全新安裝的Windows 11 22H2的默認(rèn)值是這些:插電最大頻率2GHz,離電最大頻率1.8GHz,插電異類短運(yùn)行線程調(diào)度策略自動(dòng)

最大頻率

沒(méi)什么好說(shuō)的,微軟聲稱的最大能節(jié)約90%的cpu功耗是不是在全核鎖5GHz而且為了編譯Windows所以cpu占用率90%以上的臺(tái)式機(jī)上測(cè)的?這個(gè)限制頻率純屬搞笑,1.8GHz已經(jīng)大于等于所有12代u系列cpu的大核的基礎(chǔ)頻率了,后臺(tái)進(jìn)程能用到1.8GHz還談什么省電?但凡把處理器能源性能首選項(xiàng)策略改成和modern standby用的QoS level一樣的100都算微軟努力過(guò)了。

另外一個(gè)調(diào)度到高效核心上等于異類線程調(diào)度策略選高效處理器或首選高效處理器,我的評(píng)價(jià)是,我都可以用電源計(jì)劃全局應(yīng)用這個(gè)設(shè)置了,為什么要用EcoQoS?

https://www.intel.com/content/dam/develop/external/us/en/documents-tps/348851-optimizing-x86-hybrid-cpus.pdf

至于效率模式為什么要求移動(dòng)端酷睿10代以上和移動(dòng)端銳龍5000系以上,原因很簡(jiǎn)單:這些cpu支持自主模式控制和分核心控制頻率。

酷睿從6代開(kāi)始支持自主模式控制,但是移動(dòng)端的分核心控制頻率直到10代才有。

對(duì)比核心01和核心23的頻率和電壓

移動(dòng)端銳龍一開(kāi)始就支持分核心控制頻率,但是自主模式控制直到5000系才有。

自主模式控制是為了當(dāng)有不同QoS level的線程在一個(gè)核心上輪轉(zhuǎn)時(shí),核心可以盡快確定不同QoS level所需的性能。

分核心控制頻率是為了讓多核cpu同時(shí)處理不同QoS level的線程。如果沒(méi)有這個(gè)功能,有一個(gè)限制了核心頻率的線程在一個(gè)核心上,而其他核心的頻率較高,那相當(dāng)于沒(méi)限制住頻率。

綜上所述,EcoQoS和效率模式基本上就是微軟宣傳部門混kpi的產(chǎn)物,沒(méi)活可以咬打火機(jī)。

附錄:關(guān)于EcoQoS的測(cè)試結(jié)果

平衡計(jì)劃下,給跑分軟件手動(dòng)打開(kāi)EcoQoS并測(cè)試單核,頻率基本維持在EcoQoS的的限制左右,會(huì)出現(xiàn)高一些的情況,原因不明,也懶得知道;

平衡計(jì)劃下,手動(dòng)將最大頻率限制為和EcoQoS一樣的設(shè)置,單核跑分時(shí)的頻率比用EcoQoS限制時(shí)的低一點(diǎn),所以EcoQoS連限制最高頻率都不如電源計(jì)劃的全局設(shè)置;

電源計(jì)劃類型為節(jié)能的自定義計(jì)劃下,給跑分軟件手動(dòng)打開(kāi)EcoQoS并測(cè)試單核,頻率和平衡計(jì)劃沒(méi)有區(qū)別,說(shuō)明包括EcoQoS在內(nèi)的所有power profile和QoS level即使默認(rèn)設(shè)置僅寫入了默認(rèn)的平衡計(jì)劃,在非平衡類型的電源計(jì)劃上仍然生效;

同樣的自定義計(jì)劃下,禁用所有power profile和QoS level,給跑分軟件手動(dòng)打開(kāi)EcoQoS并測(cè)試單核,頻率仍然能達(dá)到最高頻率。

往EcoQoS里寫入最大頻率1GHz的設(shè)置,啟用所有power profile和QoS level,然后開(kāi)一個(gè)跑分軟件測(cè)試,最大頻率是2GHz出頭,差不多是AMD給的設(shè)置;電源計(jì)劃里限制最大頻率1GHz就沒(méi)問(wèn)題,和AMD的設(shè)置一樣用2GHz的話,頻率還比EcoQoS稍低。

要禁用所有power profile和QoS level的話到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power,把EventProcessorEnabled改為0,重啟。這樣做是為了避免所有power profile和QoS level在任何情況下覆蓋自己用的電源設(shè)置。

彩蛋:AMD的chipset driver里的電源設(shè)置,拷打EcoQoS的最有力證據(jù)


揭秘EcoQoS和效率模式的原理的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
许昌市| 黑龙江省| 泽库县| 乐至县| 漠河县| 定边县| 林西县| 浦北县| 沙田区| 西昌市| 灵丘县| 南通市| 平乡县| 常州市| 巫山县| 秦安县| 日照市| 琼海市| 洪雅县| 河西区| 迁安市| 长阳| 柘城县| 中方县| 台山市| 梁平县| 安多县| 江津市| 广州市| 东丰县| 双城市| 颍上县| 林周县| 错那县| 宜州市| 新郑市| 额济纳旗| 通州市| 松滋市| 务川| 孟州市|