瀏覽器的多進(jìn)程框架

前言:此文為李兵老師的《瀏覽器工作原理與實(shí)踐》課程的學(xué)習(xí)筆記加上個(gè)人總結(jié)倔矾。


概念:進(jìn)程與線程

進(jìn)程是一個(gè)程序的運(yùn)行實(shí)例,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位柱锹。當(dāng)啟動(dòng)一個(gè)程序的時(shí)候破讨,操作系統(tǒng)會(huì)為該程序創(chuàng)建一個(gè)內(nèi)存用于存放代碼運(yùn)行中的數(shù)據(jù)和一個(gè)執(zhí)行任務(wù)的主線程。我們把這樣的環(huán)境稱為進(jìn)程奕纫。

線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位烫沙,它是比進(jìn)程更小匹层。

以上的術(shù)語都比較抽象。打個(gè)比方:
如果用進(jìn)程比作一列火車,那么線程就是組成火車的一節(jié)節(jié)車廂升筏。

線程與進(jìn)程的關(guān)系

  • 線程依附于進(jìn)程(車廂無法獨(dú)立運(yùn)行)
  • 一個(gè)進(jìn)程可以包含多個(gè)線程(一列火車包含多個(gè)車廂)
  • 不同進(jìn)程間只能通過IPC通信(不同火車上的乘客只能通過月臺(tái)換乘)
  • 進(jìn)程間不會(huì)相互影響(不同火車不會(huì)互相影響)
  • 一個(gè)線程的崩潰導(dǎo)致整個(gè)進(jìn)程的崩潰(一節(jié)車廂壞了導(dǎo)致火車停運(yùn))
  • 進(jìn)程間的線程共享進(jìn)程的數(shù)據(jù)(火車中的乘客能自由穿梭不同車廂)

并行處理 :一般是指許多指令得以同時(shí)進(jìn)行的計(jì)算模式撑柔。
也就是說計(jì)算機(jī)在同一時(shí)刻處理多個(gè)任務(wù)灵汪。
舉例:

A=1+1;
B=1+2;
C=1+3;

如果用單線程處理,如圖所示:

image

需要四個(gè)步驟才能完成。

如果用多線程處理,如圖所示:

image

而采用多線程處理夹孔,只需兩個(gè)步驟就能完成。所以使用多線程并行處理能提高運(yùn)行效率

chrome下的多進(jìn)程架構(gòu)

如圖所示:

image

從圖中可以看出chrome架構(gòu)包括:1個(gè)瀏覽器進(jìn)程(Browser Process)擅这、1個(gè)網(wǎng)絡(luò)進(jìn)程(NetWork Process)、1個(gè)插件進(jìn)程(Plugin Process)、1個(gè)GPU進(jìn)程(GPU Process)與多個(gè)渲染進(jìn)程(Render Process)结笨。
每個(gè)進(jìn)程負(fù)責(zé)的任務(wù)

  • 瀏覽器進(jìn)程:負(fù)責(zé)用戶交互、數(shù)據(jù)存儲(chǔ)嘴瓤、子進(jìn)程管理以及界面顯示等功能磁玉。
  • 插件進(jìn)程:負(fù)責(zé)插件的管理。因插件容易崩潰颅停,為防止其崩潰從而影響到頁面喊熟,所以將其隔離起來壁拉。
  • GPU進(jìn)程:負(fù)責(zé)UI界面的繪制和3DCSS的實(shí)現(xiàn)宿礁。
  • 網(wǎng)絡(luò)進(jìn)程:負(fù)責(zé)網(wǎng)絡(luò)資源加載。
  • 渲染器進(jìn)程:主要負(fù)責(zé)將HTML街佑、CSS和JavaScript轉(zhuǎn)化為網(wǎng)頁榨婆。默認(rèn)情況下瀏覽器為每個(gè)頁面創(chuàng)建一個(gè)渲染進(jìn)程。出于安全考慮吊档,將渲染進(jìn)程運(yùn)行在沙箱里面。

所以打開一個(gè)頁面至少運(yùn)行4個(gè)進(jìn)程葡秒,分別是1個(gè)網(wǎng)絡(luò)進(jìn)程、1個(gè)渲染進(jìn)程扣囊、1個(gè)GPU進(jìn)程和1個(gè)瀏覽器進(jìn)程骂澄。如果有插件還會(huì)有插件進(jìn)程。

image

渲染進(jìn)程的個(gè)數(shù)

默認(rèn)情況下酒唉,瀏覽器進(jìn)程會(huì)為每一個(gè)頁面創(chuàng)建一個(gè)渲染進(jìn)程痪伦。但是從一個(gè)頁面打開另一個(gè)頁面辉哥,而且這兩個(gè)頁面同屬站點(diǎn)時(shí)饲齐,會(huì)共用一個(gè)渲染進(jìn)程。

image

但是分別打開的時(shí)候又會(huì)是不同的進(jìn)程:

image

頁面之間的鏈接
頁面之間是通過JavaScript來??的次泽,有以下兩種方法:

  • 通過a標(biāo)簽個(gè)新建標(biāo)簽建立鏈接
<a href="www.juejin.im/post/{hash}"></a>

這是從掘金首頁打開掘金文章的鏈接席爽,點(diǎn)擊該鏈接會(huì)打開新的頁面意荤,新頁面的window.opener的值就是指向掘金首頁的window。這樣可以說只锻,這兩個(gè)頁面是有鏈接的

  • 通過window.open()打開新鏈接同理

WhatWG規(guī)范中玖像,把這一類具有相互聯(lián)系關(guān)系的頁面稱為瀏覽器上下文組(browsing context group)
Chrome將瀏覽器上下文組中屬于同一站點(diǎn)的標(biāo)簽共用一個(gè)渲染進(jìn)程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末齐饮,一起剝皮案震驚了整個(gè)濱河市捐寥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祖驱,老刑警劉巖握恳,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捺僻,居然都是意外死亡乡洼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門匕坯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來束昵,“玉大人,你說我怎么就攤上這事醒颖∑拊酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵泞歉,是天一觀的道長逼侦。 經(jīng)常有香客問我匿辩,道長,這世上最難降的妖魔是什么榛丢? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任铲球,我火速辦了婚禮,結(jié)果婚禮上晰赞,老公的妹妹穿的比我還像新娘稼病。我一直安慰自己,他們只是感情好掖鱼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布然走。 她就那樣靜靜地躺著,像睡著了一般戏挡。 火紅的嫁衣襯著肌膚如雪芍瑞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天褐墅,我揣著相機(jī)與錄音拆檬,去河邊找鬼。 笑死妥凳,一個(gè)胖子當(dāng)著我的面吹牛竟贯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逝钥,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屑那,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了艘款?” 一聲冷哼從身側(cè)響起齐莲,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磷箕,沒想到半個(gè)月后选酗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岳枷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年芒填,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空繁。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡殿衰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盛泡,到底是詐尸還是另有隱情闷祥,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布傲诵,位于F島的核電站凯砍,受9級(jí)特大地震影響箱硕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悟衩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一剧罩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧座泳,春花似錦惠昔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潮饱,卻和暖如春营罢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饼齿。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝙搔,地道東北人缕溉。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像吃型,于是被迫代替她去往敵國和親证鸥。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容