知道了瀏覽器是多進(jìn)程后鞋邑,再來看看它到底包含哪些進(jìn)程:(為了簡化理解,僅列舉主要進(jìn)程)
1.瀏覽器都包含哪些進(jìn)程
- Browser進(jìn)程(即上篇文章截圖里面的瀏覽器進(jìn)程):瀏覽器的主進(jìn)程(負(fù)責(zé)協(xié)調(diào)薛夜、主控),只有一個(gè)版述。主要作用:
- 負(fù)責(zé)瀏覽器界面顯示梯澜,與用戶交互。如前進(jìn)渴析,后退等
- 負(fù)責(zé)各個(gè)頁面的管理晚伙,創(chuàng)建和銷毀其他進(jìn)程
- 將渲染(Renderer)進(jìn)程得到的內(nèi)存中的Bitmap(位圖),繪制到用戶界面上
- 網(wǎng)絡(luò)資源的管理俭茧,下載等
- 第三方插件進(jìn)程:每種類型的插件對應(yīng)一個(gè)進(jìn)程咆疗,僅當(dāng)使用該插件時(shí)才創(chuàng)建
- GPU進(jìn)程:最多一個(gè),用于3D繪制等
- 瀏覽器渲染進(jìn)程(即通常所說的瀏覽器內(nèi)核)(Renderer進(jìn)程母债,內(nèi)部是多線程的):主要作用為頁面渲染午磁,腳本執(zhí)行尝抖,事件處理等
注:調(diào)用百度百科,瀏覽器內(nèi)核定義:瀏覽器最重要或者說核心的部分是“Rendering Engine”迅皇,可大概譯為“渲染引擎”昧辽,不過我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。即往深處挖登颓,瀏覽器內(nèi)核也是一個(gè)線程搅荞。
2.瀏覽器多進(jìn)程的優(yōu)勢
相比于單進(jìn)程瀏覽器,多進(jìn)程有如下優(yōu)點(diǎn):
- 避免單個(gè)page crash影響整個(gè)瀏覽器
- 避免第三方插件crash影響整個(gè)瀏覽器
- 多進(jìn)程充分利用多核優(yōu)勢
- 方便使用沙盒模型隔離插件等進(jìn)程挺据,提高瀏覽器穩(wěn)定性
簡單點(diǎn)理解:如果瀏覽器是單進(jìn)程取具,那么某個(gè)Tab頁崩潰了,就影響了整個(gè)瀏覽器扁耐,體驗(yàn)有多差暇检;同理如果插件崩潰了也會(huì)影響整個(gè)瀏覽器;而且多進(jìn)程還有其它的諸多優(yōu)勢婉称。當(dāng)然块仆,多進(jìn)程,內(nèi)存等資源消耗也會(huì)更大王暗,有點(diǎn)空間換時(shí)間的意思悔据。
知道了瀏覽器是多進(jìn)程以及瀏覽器的主要進(jìn)程分離。對于前端人員來說俗壹,頁面的加載就是通過渲染來實(shí)現(xiàn)的科汗,所以下面著重講解瀏覽器進(jìn)程中的渲染進(jìn)程。