为什么打开一个页面,浏览器会有4个进程或更多?
首先說一下單進程瀏覽器
2007年之前,市面上的瀏覽器都是單進程的,即所有頁面中所有的模塊都運行在一個進程里,這些模塊包括:網絡、插件、javascript運行環境、渲染引擎、頁面展現等。
這么多模塊都運行在一個進程中,是瀏覽器不穩定、不流暢和不安全的主要因素。
1.不穩定
早起瀏覽器需要借助插件來實現web視頻、web游戲等強大功能。但是插件是及其不穩定的因素,當插件崩潰時,會導致整個瀏覽器的崩潰,因為插件作為一個模塊與其他模塊都共同運行在瀏覽器進程中。
除去插件模塊外,渲染引擎模塊也是不穩定的,一些復雜的javascript代碼會是渲染引擎模塊崩潰,導致瀏覽器崩潰
2.不流暢
所有頁面的渲染模塊、javascript執行環境以及插件都運行在同一線程中,這就意味著同一時刻只能有一個模塊可以執行。
如果有一個無限循環的腳本運行在一個單進程的瀏覽器的頁面里是,它會占據整個線程,這會導致運行在該線程中的其它模塊,都沒有機會被執行。因為瀏覽器中所有的頁面都運行在此線程中,所以這些頁面沒有機會被執行,這樣就會導致整個瀏覽器失去響應,變卡頓。
頁面的內存泄漏也會直接導致單進程變慢。運行復雜頁面時,部分內存不能完全被回收,這樣導致使用時間越長,內存占用越高,瀏覽器就會變的越慢。
3.不安全
插件可以使用C/C++等代碼編寫,通過插件可以獲取到操作系統的任何資源,當運行一個插件時,這個插件能完全操作你的電腦,如果是惡意插件的話,它可以在你的電腦上釋放病毒或盜竊你的賬號密碼等。
頁面腳本可以通過瀏覽器漏洞獲得你的系統權限,惡意的腳本可以通過獲取到的權限,對你的電腦做一些惡意的事情。
多進程瀏覽器時代
(chrome進程架構圖)
從圖中可以看出,現在的chrome瀏覽器包括:一個瀏覽器主進程、多個渲染進程、多個插件進程、網絡進程、1個GPU進程。
1.瀏覽器進程:主要負責界面顯示、用戶交互、子進程管理、提供存儲功能等功能
2.渲染進程:將HTML、CSS、Javascript轉換為用戶可以交互的界面,默認情況下,chrome會為每個Tab標簽提供一個渲染進程,渲染進程是運行在沙箱模式下
3.GPU進程:chrome的UI界面都選擇使用GPU來繪制
4.網絡進程:負責頁面的網絡資源加載
5.插件進程:負責插件的運行,因為插件的易崩潰,所以需要通過插件進程來隔離,已保證插件崩潰時,不會影響瀏覽器以及其他頁面資源
(如果是同一站點,從A頁面點到B頁面,此時,兩個頁面同用一個渲染進程,如果兩個頁面的站點不同,會是兩個渲染進程,如果頁面中有iframe,iframe也會自己占用一個進程)
總結
以上是生活随笔為你收集整理的为什么打开一个页面,浏览器会有4个进程或更多?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年上海高考455分能报什么大学(
- 下一篇: 河北工程技术学院2021年各省录取分数线