如果你有注意過Windows的工作管理員,你可能常常會發現一件很奇怪的事,就是你明明只有打開一個網頁,為什麼你的瀏覽器會出現了許多個執行緒行程?
這對於很多Windows使用者來說,可能都是一個無解的謎,甚至懷疑自己的電腦是否中毒了。
不過,最近微軟官方在一篇技術文章中,說明了其實這是現代瀏覽器採用了多行程的架構所建構。也算是幫大家解開了這個疑惑。
這是來自微軟的Edge瀏覽器團隊的一篇文章,主要在說明Edge瀏覽器的多行程架構,但同樣的觀念Chrome瀏覽器當然也適用。
他們表示,Edge瀏覽器採用多行程架構,瀏覽器在工作時主要被分為幾個不同的行程:
- 瀏覽:這是主要的行程,負責視窗窗口和選項管理,控制瀏覽器的位址欄、前進 / 後退按鈕等框架、且要處理網路請求和檔案存取。
- 算繪:透過執行網站提供的程式碼,來控制一個網頁的呈現,能夠處理超文字標記語言(HTML)、級聯樣式表(CSS)、JavaScript 和圖像等內容。
- GPU 運算:負責與圖形硬體相關的所有任務,比如加速圖形運算、並將處理器結果輸出到顯示器上。
- 實用功能:負責了影片播放、網路服務、資料解碼、以及集合管理,Microsoft Edge 可借此控制、管理、協調系統資源。
- 附加程式:負責了對各個附加程式的管理,每個行程的資源使用情況、以及同主行程 /算繪行程的溝通。
- 崩潰處理:如果瀏覽器發生崩潰,Crashpad Handler 能夠捕獲異常、並將錯誤報告傳遞,以查找問題和修復故障。
另外,出於可靠性和安全性的考慮,即便是同一網頁上的不同元素,也可能被分配了單獨的行程。這樣,即使是不慎被惡意軟體利用了一個算繪行程中的安全漏洞,也可避免其影響另一個行程。
行程間彼此隔離的另一個好處,就是能夠防止對另一個行程的「竄訪」,從而提升了瀏覽器的整體安全性,比如防止被網站的惡意廣告給獲取敏感資訊。此外,若 Web 應用程式、擴充程式發生了崩潰,也只會有小範圍受到波及(大部分標籤頁仍可正常執行),瀏覽器的整體可靠性卻有了大幅提升。
最後,這項特性可讓使用者更直觀地瞭解到每個行程的資源佔用,進而分析出哪個網站、擴充程式、或外加套件消耗了過多的資源。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!