亚洲先锋影音人AV成_免费A级毛片一分钟_人人爽人人爽人人插_日韩少妇极品熟妇人妻潮喷

沃卡惠移動端logo

如何將混合核心帶入Web

2022-11-05 11:56:354636

根據(jù)微軟對用戶應(yīng)用程序的使用統(tǒng)計(jì),人們在 PC 上花費(fèi)的60%時間是在網(wǎng)絡(luò)瀏覽器上。Google Chrome是谷歌基于Chromium項(xiàng)目開發(fā)的跨平臺網(wǎng)絡(luò)瀏覽器。根據(jù)StatCounter網(wǎng)站統(tǒng)計(jì),到2022年1月,Chrome瀏覽器在全球所有平臺的市場份額超過63%。

結(jié)合高性能核心和節(jié)能核心的混合核心架構(gòu)越來越受歡迎,尤其是在英特爾推出 Alder Lake CPU 產(chǎn)品之后。性能核心旨在提供最大的計(jì)算性能,而高效核心旨在提供最大的電源效率。通常操作系統(tǒng)調(diào)度程序可以管理混合核心調(diào)度,但它們?nèi)狈?yīng)用程序行為的細(xì)節(jié),如關(guān)鍵路徑。操作系統(tǒng)調(diào)度程序很難涵蓋所有場景。

我們來自 Web 優(yōu)化團(tuán)隊(duì),專注于 Web 平臺(主要是 Chromium)的功率和性能優(yōu)化,旨在為 IA 提供更好的用戶體驗(yàn)。本文介紹了我們利用混合核心能力將 Chrome 瀏覽器中特定線程/進(jìn)程的執(zhí)行調(diào)度到高效核心的工作,該核心采用動態(tài)策略來根據(jù)設(shè)備狀態(tài)在不同級別降低功耗。下面所有的分析和測試都是在 Chrome OS 平臺上進(jìn)行的。

概述

在混合核心平臺上,Chrome 可以將線程調(diào)度到高效核心,以節(jié)省功耗。但是,始終將瀏覽器線程放在高效的內(nèi)核上是不切實(shí)際的,因?yàn)榇罅烤€程可能會激增并需要更高的性能。因此,我們在 Chrome 瀏覽器中提出了一種混合核心調(diào)度技術(shù),通過將特定的非關(guān)鍵線程調(diào)度到高效的核心來執(zhí)行,從而對特定的非關(guān)鍵線程應(yīng)用動態(tài)限制。該技術(shù)基于 Web 運(yùn)行時場景,例如背景/空閑/廣告/視頻,因?yàn)榫€程的重要性會在不同的場景中發(fā)生變化。此外,設(shè)備信息,如電池/熱狀態(tài)和混合核心信息,需要暴露給 Chrome?;谒鼈?,混合核心調(diào)度將應(yīng)用不同的核心分配策略來平衡功率和性能。通常我們將低優(yōu)先級線程調(diào)度到高效核心。但是當(dāng)設(shè)備處于電池耗盡等關(guān)鍵階段時,調(diào)度策略會更積極地延長設(shè)備使用時間。調(diào)度策略的應(yīng)用依賴于操作系統(tǒng)的支持,我們可以根據(jù)操作系統(tǒng)的習(xí)慣使用線程優(yōu)先級或QoS機(jī)制。在 Chrome OS 上,目前我們更改線程優(yōu)先級及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。目前我們更改線程優(yōu)先級及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。目前我們更改線程優(yōu)先級及其 cgroup 關(guān)聯(lián)。該提案的整體架構(gòu)如圖 1 所示。

圖 1:Chrome 瀏覽器中的混合核心調(diào)度

執(zhí)行

混合核心調(diào)度技術(shù)的實(shí)現(xiàn)主要包含三個部分,場景檢測、調(diào)度策略、操作系統(tǒng)支持工作。

場景檢測

首先,我們需要根據(jù)來自各種瀏覽器組件的輸入來確定進(jìn)程的當(dāng)前場景。例如,Chrome 渲染進(jìn)程有一個關(guān)于后臺狀態(tài)的狀態(tài),表示該進(jìn)程是前臺還是后臺場景。再舉一個例子,Chrome 有一個廣告標(biāo)記機(jī)制來檢測廣告及其在瀏覽器中加載的資源。廣告標(biāo)記通過將資源請求與過濾器列表進(jìn)行匹配來確定它們是否是廣告請求。如果 iframe 的 url 與過濾器列表匹配,如果標(biāo)記的腳本參與 iframe 的創(chuàng)建,或者其父框架是廣告 iframe,則 iframe 將被標(biāo)記為廣告 iframe。如果所有幀都是廣告幀,則渲染進(jìn)程將被標(biāo)記為廣告進(jìn)程。瀏覽器收集所有這些輸入并使用優(yōu)先級機(jī)制來決定流程的整體模式。

調(diào)度策略

調(diào)度策略因設(shè)備狀態(tài)而異。如圖 1 所示,瀏覽器會通過操作系統(tǒng)提供的 API 監(jiān)控設(shè)備的電源狀態(tài),包括電池電量、充電狀態(tài)和熱狀態(tài)。對于混合核心調(diào)度,下面定義了兩個階段。

第一個是正常階段,表示電池電量超過20%或設(shè)備正在充電,同時熱狀態(tài)正常。在這個階段,用戶更關(guān)心性能而不是功耗,所以我們只將低優(yōu)先級的線程/進(jìn)程調(diào)度到高效的核心,如后臺進(jìn)程或處理低優(yōu)先級任務(wù)的線程,如日志/分析。

第二個是臨界階段,這意味著電池電量非常低而沒有充電,或者設(shè)備處于臨界熱狀態(tài),或者 Web 開發(fā)人員明確想要進(jìn)入省電模式,例如使用省電元標(biāo)記。在這個階段,我們將采用更積極的策略來節(jié)省更多電量、延長設(shè)備使用時間或避免由于 CPU 溫度過高而導(dǎo)致的熱節(jié)流。在這種情況下,只要不涉及用戶體驗(yàn)關(guān)鍵任務(wù),許多正常優(yōu)先級的線程/進(jìn)程將被調(diào)度到高效核心。

操作系統(tǒng)支持工作

需要做一些工作才能使 Chrome 使用操作系統(tǒng)功能。電池和熱狀態(tài)是 UX 的兩個重要因素?;谒鼈儯珻hrome 可以制定適當(dāng)?shù)牟呗詠砥胶庑阅芎凸?。以前,只有電池狀態(tài)會暴露給 Chrome。我們的團(tuán)隊(duì)在 Chrome 中實(shí)現(xiàn)了熱狀態(tài)通知功能。在該功能中,我們引入了 4 個熱級別:標(biāo)稱、一般、嚴(yán)重和嚴(yán)重,指的是 Apple 的熱提示 API。這樣Chrome就可以得到實(shí)時的熱狀態(tài)。報(bào)告電池電量、充電和熱狀態(tài)后,Chrome 將決定進(jìn)入哪個階段并應(yīng)用不同的調(diào)度策略。

此外,我們使用現(xiàn)有的 cgroup 機(jī)制在 Chrome OS 上的 Chrome 線程和高效內(nèi)核之間建立了一座橋梁。后臺優(yōu)先級線程被放置在具有指定 CPU 集的特定 cgroup 中。在混合核心平臺上,可能會為組分配高效的核心。所以如果我們想把不重要的線程調(diào)度到高效的核心去執(zhí)行,我們可以降低線程優(yōu)先級,把它們放到非緊急cgroup中。調(diào)度是動態(tài)的。當(dāng)線程變得重要時(例如切換到前臺),我們會立即將線程優(yōu)先級提高到正常,從而從特定的 cgroup 中刪除。

實(shí)驗(yàn)

我們使用本地構(gòu)建的 Chromium 瀏覽器來評估每個場景混合核心調(diào)度的功率影響,目前主要關(guān)注后臺渲染器進(jìn)程、廣告進(jìn)程和空閑進(jìn)程(空閑是 Chrome RAIL 模型中定義的狀態(tài))。根據(jù)在 Alder Lake Chromebook 上進(jìn)行的實(shí)驗(yàn),我們觀察到在將空閑進(jìn)程調(diào)度到高效核心時,網(wǎng)頁瀏覽的 CPU 包功耗降低了 4.2%,調(diào)度廣告進(jìn)程時 CPU 包功耗降低了 3.8%。同時,我們使用 4-tab 瀏覽工作負(fù)載來測試將后臺進(jìn)程放置在高效內(nèi)核上的功耗影響,發(fā)現(xiàn) CPU 封裝功耗降低了 0.9%。當(dāng)后臺標(biāo)簽和頁面活動的數(shù)量增加時,省電會更大。

實(shí)驗(yàn)數(shù)據(jù)表明,我們利用 Chromium 瀏覽器中的混合核心功能將非 UX 關(guān)鍵進(jìn)程/線程調(diào)度到選定場景中的高效核心,從而實(shí)現(xiàn)了明顯的功耗降低,這有助于延長設(shè)備電池壽命。

未來的工作

我們會繼續(xù)探索更多的場景,對性能要求不高,對應(yīng)的進(jìn)程/線程可以調(diào)度到高效核上。另外,對于ads、idle等一些場景,在高效核上運(yùn)行可能會對性能產(chǎn)生影響,我們即將進(jìn)行性能評估,并相應(yīng)調(diào)整調(diào)度策略。此外,我們打算將我們的分析和混合核心調(diào)度優(yōu)化擴(kuò)展到 Windows 和 Linux 平臺。