微軟解析新Edge瀏覽器的多進程體系結構 提高使用資源的可問責性?
今天的瀏覽器更像是操作系統,而不是文檔查看器。用戶在瀏覽器中執行的任務越來越多,而在桌面應用程序中執行的任務越來越少。然而,每個網頁、Web應用和擴展都會使用內存。因此,用戶經常會關心內存使用情況如何影響他們的體驗。
我們正在努力開發解決方案,以解決這一問題。這些解決方案包括為網站和擴展開發者提供信息,幫助他們使用更少的資源,并幫助用戶了解他們的瀏覽習慣如何影響Microsoft Edge的資源使用。
我們將在未來幾個月內分享更多關于Microsoft Edge的內存使用情況,從今天的文章開始深入探討Microsoft Edge的多進程架構。我們希望這能讓您深入了解Microsoft Edge如何使用您的計算機資源,瀏覽習慣如何影響資源使用,以及您如何幫助我們讓Microsoft Edge變得更好。
多進程體系結構如何幫助提高瀏覽器的安全性和可靠性
許多瀏覽器是使用多進程體系結構構建的,這意味著瀏覽器被劃分為不同的進程。
瀏覽器進程(Browser process): 這是主要的進程,它幫助管理窗口和標簽,并控制瀏覽器框架,如地址欄和前進和后退按鈕。它還可以對網絡請求和文件訪問等實用程序的特權訪問進行路由。
渲染進程(Renderer processes): 這些控件通過執行網站提供的代碼來控制網站如何在標簽頁中渲染。它們處理HTML、CSS、JavaScript、圖像等。每個渲染器進程的資源使用情況都取決于所托管的內容。
GPU進程(GPU process): 該進程負責與GPU(圖形處理單元)進行通信并處理所有GPU任務。GPU是一種硬件,可以快速執行與圖形相關的計算,并將輸出發送到顯示器以進行顯示,現代瀏覽器使用GPU來快速渲染網頁。
實用程序進程(Utility processes): 音頻播放、網絡服務、視頻采集、數據解碼、收藏管理器都由這些進程來處理,這樣Microsoft Edge就可以控制和審核這些資源的訪問,協調全局系統資源的使用。
插件進行和擴展程序進程(Plug-in processes and extension processes): 插件進程包含活動插件,例如Adobe Flash,而擴展進程包含活動擴展。每個進程執行由插件或擴展提供的代碼,每個進程的資源使用情況根據所提供的代碼而不同。每個進程也有允許插件或擴展與瀏覽器和渲染器進程通信的代碼。
Crashpad處理程序進程(Crashpad handler process): 這可以跟蹤Microsoft Edge中不同進程的健康狀況。如果Microsoft Edge崩潰,這個過程將幫助瀏覽器捕獲并將崩潰報告傳輸到微軟服務器,我們使用這些崩潰報告來尋找和修復崩潰。
現在我們已經介紹了每個進程的作用,讓我們來看看一個進程的例子,它將為一個打開了一個標簽頁并在Microsoft Edge中打開了兩個擴展的用戶運行。
瀏覽器實例,其中一個選項卡已打開,兩個擴展已打開
如果用戶打開Windows任務管理器,則將顯示進程:
在此示例中,用戶將看到九個進程正在運行:
瀏覽器框架的瀏覽器進程
一個幫助顯示圖形的GPU進程
一個正在運行示例網站提供的代碼的渲染器進程
網絡服務實用程序進程,幫助處理網絡請求
音頻服務實用程序進程,可幫助播放音頻
運行Flash提供的代碼的插件進程
兩個擴展進程,每個擴展進程一個,運行擴展提供的代碼
一個監控Microsoft Edge健康狀況的crashpad處理程序
所有這些過程一起寫作,給你今天使用的瀏覽體驗。
現在讓我們來看另一個例子。在下一個示例中,用戶打開了四個選項卡,并啟用了兩個擴展(圖2)。每個標簽都有一個廣告(兩個來自一個來源,兩個來自另一個來源)。
瀏覽器實例打開了四個選項卡,并且打開了兩個擴展
在此示例中,如果用戶打開任務管理器,他們將看到14個進程正在運行:
瀏覽器框架的瀏覽器進程
一個幫助顯示圖形的GPU進程
六個渲染器進程:
四個標簽頁的渲染器進程,每個標簽頁都有自己的渲染器進程,并運行網站提供的代碼。有時,來自同一域的選項卡將共享一個進程。
兩個廣告的渲染器進程。來自同一域名的廣告將共享一個進程,并將運行廣告提供的代碼。在本例中,第一個來源的兩個廣告將共享一個進程,第二個來源的兩個廣告將共享一個單獨的進程。這些廣告使用稱為子幀的東西嵌入網頁中。(稍后我們將詳細討論子幀。)
網絡服務實用程序進程,幫助處理網絡請求
音頻服務實用程序進程,可幫助播放音頻
一個正在運行Flash的插件進程
兩個擴展進程,每個擴展進程一個,運行擴展提供的代碼
一個監控Microsoft Edge健康狀況的crashpad處理程序
一些例子更加復雜。您可能會看到對您不可見的子框架的其他進程,或者您可能會看到項目(如service workers人員或web workers)與選項卡或子框架共享進程。service workers和web workers是在后臺運行的腳本,以提高性能,并允許您在沒有互聯網連接的情況下使用一些網站和應用程序。
Chromium's多進程架構:https://www.chromium.org/developers/design-documents/multi-process-architecture
多進程架構的好處
每個進程都有不同的目的,影響進程總數的因素很多。那么,Microsoft Edge為什么要使用這種多進程架構呢?
與其他現代瀏覽器一樣,Microsoft Edge使用這種架構來提高安全性、可靠性和對瀏覽器如何使用資源的可問責性。Microsoft Edge基于Chromium項目構建,并與其他Chromium瀏覽器共享一個通用實現。
增強的安全性
如果惡意軟件利用了一個渲染器進程中的安全漏洞,則很難逃脫該進程并影響另一個進程。
渲染器進程是最有可能受到攻擊的進程,因為它是與網站交互的進程。該進程的特權較低,并且對操作系統的訪問受到極大限制,因此,如果惡意軟件控制該進程,則它將無法控制該計算機。渲染器進程和瀏覽器進程之間的通信范圍狹窄且受到保護,惡意軟件很難利用此優勢來利用瀏覽器進程。
另外,進程隔離可以防止一個進程訪問另一個進程的內存,這也提高了瀏覽器的安全性。舉例來說,假設您正在網上購買襯衫,并且該網站上有一個廣告。您所訪問的網站需要訪問您的信用卡信息才能完成交易;但是,廣告不需要訪問此信息。廣告將按照自己的流程進行處理,因此即使廣告遭到入侵,也無法輕松訪問您的敏感信息。
可靠性
如果網頁、Web應用、擴展程序或插件發生崩潰,只有正在崩潰的進程才會受到影響,提高瀏覽器的可靠性。瀏覽器的其余部分,包括大多數其他選項卡,將保持穩定。
資源問責制
隔離每個進程,可以更容易地在任務管理器中看到哪個進程使用了最多的資源,并提供有關哪些資源使用的信息。Microsoft Edge使用最多的資源,還是網站,擴展程序或插件?您還可以在Microsoft Edge的內部任務管理器中看到這些信息,您可以在Microsoft Edge中按Shift+Esc鍵打開,或者進入瀏覽器的上角,選擇設置和更多(...)>更多工具>瀏覽器任務管理器。
責任編輯:hnmd004
- 清倉和半倉有什么區別?北交所中簽100股能賺2023-06-14
- 申購新股最多可以配多少個號?新股申購配號2023-06-14
- 環球視訊!提前還車貸會影響征信嗎?車貸提2023-06-14
- 內馬爾和姆巴佩誰才是球隊老大?內馬爾和梅2023-06-14
- 房貸轉貸有什么風險?按揭房轉貸貸款可靠嗎2023-06-14
- 雅迪冠能探索E10電動車亮相 售價從4990元2023-06-14
- 漲浮不定與漲幅不定的區別是什么?漲幅和漲2023-06-14
- 保溫杯有涂層的目的是什么?保溫杯什么材質2023-06-14
- 蘋果手機可以更新系統嗎?蘋果手機發熱發燙2023-06-14
- 水瓶給人一種好欺負的樣子 其實內心特別堅2023-06-14
- 環球滾動:小米文件夾在哪里?小米手機怎么2023-06-14
- 心的繁體字怎么寫?比的繁體字怎么寫?2023-06-14
- 天秤會和很多人都是朋友 有自己的底線和原2023-06-14
- 電腦桌介紹 電腦桌分類有哪些?2023-06-14
- nft概念是什么意思?nft龍頭股有哪些?什么2023-06-14
- 安利凈水器簡介 安利凈水器好嗎?2023-06-14
- c1駕照增駕b2駕照需要什么條件?c1駕照怎么2023-06-14
- 什么是利率調節機制? 利率調節2023-06-14
- 微波爐有輻射嗎?微波爐解凍要幾分鐘?2023-06-14
- 渭南:2023年新建停車泊位不少于10000個2023-06-14
- 戌山辰向大富大貴水法_戌 漢字2023-06-14
- 當前速讀:延安發布棗芽茶公用品牌2023-06-14
- 【環球新要聞】布林帶是指什么有哪些作用?2023-06-14
- 7萬億之后 科創板的下一站|全球熱點評2023-06-14
- 天天實時:四部門:對不裁員、少裁員的企業2023-06-14
- 基金公司解讀央行“降息”:或提振實體經濟2023-06-14
- 匯豐銀行將分階段結束新西蘭財富和個人銀行2023-06-14
- 天天速訊:人民幣尾號4444有收藏價值嗎?人2023-06-14
- 當前消息! 攝影的光線有哪幾種?不同方向2023-06-14
- 全球熱門:兩部門:擬分三批組織開展中小企2023-06-14