(一)Chrome架構:僅僅打開了1個頁面,爲什麼有4個進程?

(1)什麼是並行處理

計算機中的並行處理就是同一時刻處理多個任務

(2)進程和線程

線程是不能單獨存在的,它是由進程來啓動和管理的

一個進程就是一個程序的運行實例。詳細解釋就是,啓動一個程序的時候,操作系統會爲該程序創建一塊內存,用來存放代碼、運行中的數據和一個執行任務的主線程,我們把這樣的一個運行環境叫進程。

多線程可以並行處理任務

線程是依附於進程的,而進程中使用多線程並行處理能提升運算效率。進程由多個線程構成

(3)進程和線程之間的關係有以下 4 個特點

1. 進程中的任意一線程執行出錯,都會導致整個進程的崩潰

2. 線程之間共享進程中的數據。

3. 當一個進程關閉之後,操作系統會回收進程所佔用的內存。

4. 進程之間的內容相互隔離,所以一個進程如果崩潰了,或者掛起了,是不會影響到其他進程的

(4)最新的 Chrome 進程架構圖

 從圖中可以看出,最新的 Chrome 瀏覽器包括:1 個瀏覽器(Browser)主進程、1 個 GPU 進程、1 個網絡(NetWork)進程、多個渲染進程和多個插件進程。

1. 瀏覽器進程。主要負責界面顯示、用戶交互、子進程管理,同時提供存儲等功能。

2. 渲染進程。核心任務是將 HTML、CSS 和 JavaScript 轉換爲用戶可以與之交互的網頁,排版引擎 Blink 和 JavaScript 引擎 V8 都是運行在該進程中,默認情況下,Chrome 會爲每個 Tab 標籤創建一個渲染進程。出於安全考慮,渲染進程都是運行在沙箱模式下。

3. GPU 進程。 GPU 的使用初衷是爲了實現 3D CSS 的效果,隨後網頁、Chrome 的 UI 界面都選擇採用 GPU 來繪製,這使得 GPU 成爲瀏覽器普遍的需求。Chrome 在其多進程架構上也引入了 GPU 進程。

4. 網絡進程。主要負責頁面的網絡資源加載,之前是作爲一個模塊運行在瀏覽器進程裏面的,直至最近才獨立出來,成爲一個單獨的進程。插件進程。主要是負責插件的運行,因插件易崩潰,所以需要通過插件進程來隔離,以保證插件進程崩潰不會對瀏覽器和頁面造成影響。

所以 打開一個頁面 會打開4個進程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章