瀏覽器架構-實踐篇

1-瀏覽器架構-實踐篇

那麼咱們來來看看Chrome是對應的瀏覽器架構是怎樣的呢?當咱們打開任務管理器的時候,會看到看到瀏覽器開啓會有多個進程(能夠經過Chrome的更多工具 -> 任務管理器自行查看。)。chrome

那咱們來來看看chrome有哪些主要進程吧。瀏覽器

  • Browser Process:瀏覽器的主進程(負責協調、主控),只有一個。
    1. 負責包括地址欄,書籤欄,前進後退按鈕等部分的工做;
    2. 負責各個頁面的管理,建立和銷燬其餘進程;
    3. 將Renderer進程獲得的內存中的Bitmap,繪製到用戶界面上;
    4. 負責處理瀏覽器的一些不可見的底層操做,好比網絡請求和文件訪問;
  • Renderer Process:默認每一個Tab頁面一個進程,互不影響。
    1. 頁面渲染,腳本執行,事件處理等
  • Plugin Process:每種類型的插件對應一個進程,僅當使用該插件時才建立
  • GPU Process:最多一個,用於3D繪製等

不一樣進程負責的區域

那多進程架構由那些優/劣勢呢?安全

優點 劣勢
單一頁面的 crash 並不會影響瀏覽器 不一樣進程內存不能共享,致使不一樣進程內存中存有相同信息
插件的 crash 並不會影響瀏覽器
多進程充分利用多核優點
更爲安全,在系統層面上限定了不一樣進程的權限

chrome 爲了節省內存的使用,限制了最多的進程數,最大進程數量由設備的內存和 CPU 能力決定,當達到這一限制時,新打開的 Tab 會共用以前同一個站點的渲染進程。網絡

Chrome 把瀏覽器不一樣程序的功能看作服務,這些服務能夠方便的分割爲不一樣的進程或者合併爲一個進程。以 Broswer Process 爲例,若是 Chrome 運行在強大的硬件上,它會分割不一樣的服務到不一樣的進程,這樣 Chrome 總體的運行會更加穩定,可是若是 Chrome 運行在資源貧瘠的設備上,這些服務又會合併到同一個進程中運行,這樣能夠節省內存。架構

以上介紹完了瀏覽器的基本架構,可是咱們最開始的問題還沒開始解決呢!回顧一下問題:工具

「在瀏覽器地址欄中輸入 url 到頁面展示的短短几秒內瀏覽器究竟作了什麼?」post

下一篇文章

問題-概況篇url

相關文章
相關標籤/搜索