Firefox 開啟 multi-process(e10s)的方法及感想

經過多年的努力和數次延遲發佈之後,Mozilla 終於在 Firefox 48 將「Electrolysis」專案(或簡稱為 e10s)多程序架構(multi-process)納入穩定版(stable),提供給隨機的部份使用者開啟。這篇文章分享一下手動開啟的方法,以及我自己實際使用的感想。

零、什麼是 Electrolysis?

Electrolysis 是將 Firefox 從單程序架構邁向多程序架構的專案名稱,目標是將 Firefox 程式的核心與 Legacy NPAPI plugin(像 java 外掛、flash player 屬於這類)、media playback(網站的影音檔案、播放)、web content (網頁內容)後面三者分離,內容的溝通只功過規範的通道(ipdl protocols),而不直接影響瀏覽器核心作用。

宛如是 Chrome 開分身的效果,「內容」們在旁邊用新的子程序在跑,而不論他跑的順不順利,主程式依然可以不受干擾的做好自己的事,如此一來好處是顯而易見的:更快的網頁開啟速度、更安全的防護(透過沙盒的方式),也不會因為單一頁面崩潰而導致瀏覽器當掉。

然而到穩定版最新的 Firefox 49.0.1 為止,multi-process(e10s)在實用上依然存在著問題,像是部份套件還不支援,有些 userChrome 出錯等,所以建議在手動開啟這項功能,並調整使用的套件前還是先備份一下原先的 profiles,之後復原也比較方便。

一、火狐手動開啟 multi-process(e10s)辦法

如果跟我一樣不是那些「被選中的人」(),卻依然想要體驗 multi-process(e10s)的話,可以透過在網址輸入 about:config,進入火狐自帶的設定編輯器去修改 prefs.js 檔的方法手動開啟:

1、將偏好設定名稱 browser.tabs.remote.autostart 的值改為 true

2、將偏好設定名稱 extensions.e10sBlockedByAddons 的值改為 false

3、繼續在該頁面按滑鼠右鍵選「新增」>「布林(boolean)值」,在輸入偏好設定名稱複製貼上 browser.tabs.remote.force-enable,並將值選為 true。接著重新啟動 Firefox。

2078-firefox-multi-process-e10s-a.jpg
4、在重啟動的 Firefox 網址列輸入 about:support 開啟疑難排解資訊頁面,接著在「應用程式一般資訊」大項中,找到「多程序視窗 1/1 (預設開啟)」就表示啟用成功了。
2078-firefox-multi-process-e10s-b.jpg

註:如果有安裝各項輔助功能,導致疑難排解頁面提示「遇到因為輔助功能無法開啟」e10s 的話,到 about:config 頁面,將 accessibility.force_disabled 偏好設定為 1原值是 0)即可。

二、開啟 multi-process(e10s)之後

A、套件的支援

如前文所述,開啟 firefox 的 multi-process(e10s)之後將面臨到部份套件不支援的情況,尤其和我一樣使用非常多附加元件(add-ons)的使用者,恐怕還沒體會到速度提昇的方便,最先感到困擾的是各項 extensions 失去作用。

Mozilla 官方也並非不食人間煙火,在 Are we e10s yet 這個網頁就提供了回報是否支援 e10s 套件的整理,上面有大部份常見套件的支援狀態,方便使用者可以比對自己的情況,決定是否尋找替代品或著暫時放棄 e10s 返回一般模式。

套件不在「Are we e10s yet」網頁上或著顯示為 unknow 也並不代表無法使用,比方說我很常用的截圖套件 Screengrab (fix version) 並不在該列表上,但測試後的確可以在 multi-process(e10s)下完整使用所有功能。

另外測試過程中,也有發現部份支援套件會出現錯誤,多是因為 profiles 引起的,所以建議有時間測試的話直接開啟新的,逐步裝套件,而不要只是像過去一樣只是把整個 profiles 搬過去。

B、啟用 multi-process(e10s)的體驗

啟用 multi-process 後的體驗,就像我們常講的,怎麼調效永遠比不上硬體提昇來的直接。當我試著把在 Are we e10s yet 中找到不支援 multi-process(e10s)的套件全都停用,並安裝類似功能並支援 e10s 的套件後(沒找到替代的就不安裝了),測試感想是:

1、只論網頁渲染速度,在我的桌機上 Firefox 開不開 e10s 的效能差距幾乎可以忽略不計,在我還沒進化到分辨 5 或 7 毫秒差距的感知能力前,普通模式可能會更適合我。(可以不必捨棄部份套件)。

2、在另外兩款筆電上速度的提昇則有感的多,特別是沒有裝 SSD 那台老舊筆電,是否啟用 e10s 在開啟網頁上有非常直觀的差距,從遠落後 Chrome 的速度到幾乎沒有差異。

週末三天使用下來,不論新舊電腦都能體會到 Firefox 上 multi-process(e10s)帶來的效用,除了網頁開啟速度提昇外,更重要的是緩解了 ram 使用瓶頸造成的效能降低通常火狐吃到 1.5G~2G ram 以後不管電腦剩多少 ram 都會越跑越慢),尤其是後者對於習慣開著大量 tab 的使用者會有相當滿意的體驗。

四、感想

整體而言,相當建議沒有不能捨棄套件的使用者,手動開啟這項功能,特別是正在使用老舊電腦設備的情況下,整體速度的提昇相當明顯;電腦硬體強悍的使用者,就比較有斟酌的餘地,我自己在桌機上就不願意放棄套件的方便去換那幾毫秒的提昇,否則直接改用 Chrome 或基於 Chromium 增強的 CentVivaldi 不是更乾脆、快速嗎?XDD

 

您也許也會喜歡…

  • Bai

    問~
    顯示: 1/1 (由使用者開啟)
    應該也算成功吧 @@?

  • ark

    firefox developer edtion 老早就開放這功能了
    怪的是卻沒顯示: 1/1 (由使用者開啟)
    http://imgur.com/a/mxh3A

    • 這邊指的強制開啟是當下的 49 版本。firefox developer edtion 我沒有去測試,不過你貼的截圖是 about:preferences#general 當然不會顯示使用者開啟那行,得從 about:support 頁面看呀,理應會有的。

      • ark

        當然有從about:support看阿
        沒有才好奇ES10有無啟動成功
        http://imgur.com/a/6733F

        • 因為一開始貼那張截圖,我不清楚你想表達什麼。

          如果想知道有沒有開的話,另一個方法是:開啟網頁後,從 windows 的工作管理員看 plugin-container.exe 有幾個。有裝 flash player 並啟用的話,打開含 flash 的頁面可能會有兩個 plugin-container.exe,反之會有一個。無 flash、無 e10s 則一個也不會有。

          • ark

            第一張圖是想表示分頁會顯示ES10模式
            應該就是有啟用了,不用向您說的這麼搞剛檢測

            其實我已裝FlashHider add-ons
            強制把flash整個停用了

            有需要的再加入白名單這樣在用

            降低loading跟flash漏洞中標的機會

          • 打開工作管理員哪有什麼搞剛的,ctrl + alt + delete 就開了呀。會說從那邊看是因為部份社群版本也有把你圖一的選項實作到 firefox 49 上面,但是選了不一定有效,所以提出一個穩定可見的方式。

            FlashHider 倒確實是相當方便的套件,我也有在用XD

  • 阿力

    很多外掛都不裝變快應該的吧
    要是能比較火狐在同樣外掛數目下開 multi-process(e10s)的速度差異,一定更具參考價值

    • 你說的沒錯,裸奔肯定比較快。

      我當初也有測試過能使用 e10s 的外掛,包括 greasemonkey、ublock origin、stylish、ctr、zenmate……等共 12 個,和只裝這 12 個套件沒開啟 e10s 的情況,依然是有開 multi-process 更快。

      所以我想如果有在使用的套件都支援 e10s(或者有替代品可換),顯然開啟 e10s 比較好,只是我還有相當多套件到 03/14 的今天為止都不支援,考慮到方便性才決定關掉他。