Mozilla Firefox從48版開始向用戶推送e10s功能,
如果條件允許的話,部分用戶的Fx會自動啟用e10s(多處理程序)的功能。
目前e10s預設是啟用二個處理程序,一個是firefox.exe,負責處理瀏覽器本體框架,
另一個是plugin-container.exe,負責處理所有分頁的網頁內容。
如果有啟用外掛程式,例如Flash,還會再看到一個plugin-container.exe,
負責處理Flash外掛程式。
所以預設可能會看到三個處理程序,一個firefox.exe,二個plugin-container.exe。
將來處理網頁內容的程序應該會改名,例如改成web-content.exe,
不再使用plugin-container.exe的名稱,以避免混淆。
檢查Fx是否已啟用e10s
在網址列輸入about:support
如果已啟用e10s,「多程序視窗」這個項目會顯示1/1 (開啟)
如果你的Fx沒有自動啟用e10s,可以自己強制開啟
在網址列輸入about:config
新增布林值browser.tabs.remote.force-enable,設為true
dom.ipc.processCount(處理網頁內容的程序數目)預設是1,
數字越大plugin-container.exe就越多,記憶體也吃越多。
據官方說法開啟e10s後記憶體使用量大約會增加20%,
不過整體介面的反應速度會比較快,使用上感覺可能會比較順暢。
不過如果我們自行修改dom.ipc.processCount的預設值,
可能會發生e10s開啟新分頁比non-e10s還緩慢的現象。
這個現象在新分頁的標籤文字上特別明顯,
本來non-e10s開新分頁,新分頁標籤上的文字「連線中...」會很快顯示出來,
而e10s開新分頁,標籤則會持續空白一段時間,
大約延遲0.1秒以後才會顯示出「連線中...」的文字。
這是因為如果dom.ipc.processCount的數值大於已開啟分頁,
譬如說dom.ipc.processCount設為2,而已開啟分頁只有1個,
當新增第2個分頁時,Fx就會創建一個新的處理程序plugin-container.exe,
來處理分頁2的內容,這個創建新處理程序的過程造成了延遲。
當dom.ipc.processCount的數值小於已開啟分頁,
譬如說dom.ipc.processCount設為2,而已開啟分頁已經有2個,
當新增第3個分頁時,Fx就會使用已存在的處理程序plugin-container.exe,
來處理分頁3的內容,而不會再創建新的處理程序,
因此不會發生標籤文字顯示延遲的現象。
所以目前dom.ipc.processCount的預設值只有設為1。
而自行修改這個數值改得很大,同時習慣開啟分頁數量較少的人,
每次開新分頁,Fx就會創建新程序,這時就會遇到這個顯示延遲的現象。
如果我們希望改善這個現象,可以在about:config底下新增一個布林值
dom.ipc.processPrelaunch.enabled 設為 true
讓Fx啟用「預先配置新處理程序」的功能,這樣就可以避免開新分頁延遲的問題。