Chrome原始碼剖析【三】Chrome的程序模型
阿新 • • 發佈:2019-02-16
1. 基本的程序結構
Chrome是一個多程序的架構,不過所有的程序都會由老大,Browser程序來管理,走的是集中化管理的路子。在Browser程序中,有xxxProcessHost,每一個host,都對應著一個Process,比如RenderProcessHost對應著RenderProcess,PluginProcessHost對應著PluginProcess,有多少個host的例項,就有多少個程序在執行。。。 這是一個比較典型的代理模式,Browser對Host的操作,都會被Host封裝成IPC訊息,傳遞給對應的Process來處理,對於大部分上層的類,也就隔離了多程序細節。。。2. Render程序
3. 程序開銷控制演算法
說開銷無外乎兩方面的內容,一為時間,二則空間。Chrome沒有在程序建立和銷燬上做功夫,但是當程序執行起來後,還是做了一些工作的。。。 節約工作首先從CPU耗時上做起,優先順序越高的程序中的執行緒,越容易被排程,從而耗費CPU時間,於是,當一個頁面不再直接面對使用者的時候,Chrome會將它的程序優先順序切到Below Normal的級別,反之,則切回Normal級別。通過這個步驟,小節約了一把時間。。。
程序的優先順序 |