5278 / 5278論壇 / 我愛78論壇

 找回密碼
 立即註冊
 
 
查看: 1398|回復: 0

Firefox 54:史上最棒的一次改版!首次採用多內容處理程序,效率快、記憶體耗用比Chrome低

[複製鏈接]
發表於 2017-6-20 14:02:15 | 顯示全部樓層 |閱讀模式
在過去兩年,幾乎Chrome、Edge兩家瀏覽器的口水戰都少不了,每次講到比執行效能、耗電量等等議題的時候,幾乎都會「順便」將Firefox放在一起,而且每次Firefox總是陪榜的份。不過,現在排序可能要重新洗牌了,前幾天Firefox已經正式發表了Firefox 54版並且開放下載,官方表示速度將要比Chrome、Edge、Safari等瀏覽器都要來得快。
Firefox 54版是第一個支援多內容處理程序(multiple content processes)的Firefox版本,並兼顧效能及資源管理。而這個版本為什麼重要,以下是官方部落格的說明:

記憶體對瀏覽器的影響
你的瀏覽器所使用的記憶體所造成的影響,不只會影響了你在瀏覽網頁時的體驗,同時也會影響你在電腦中使用其它APP的體驗。如果一個瀏覽器佔用了太多的記憶體,你的電腦就沒有足夠的記憶體空間去執行其它程式,因此,你就會發現你開啟某些程式的時候會出現卡頓的現象,甚至慢到無法開啟。
反過來說,如果一個瀏覽器分配給他用的記憶體太少,那麼他打開網頁的時候,可能就會造成你開啟每一個網頁都覺得速度太慢,卡卡的。因此,有所謂的「Goldilocks 原則」,這個原則建議瀏覽器佔用記憶體要「剛好」,選擇一個適中的量,只要記憶體足夠到快速執行瀏覽網頁,也不要佔用多到耗用你的電腦資源。

▲電腦記憶體與執行速度的關係。
但是,這樣的原則說起來簡單,做起來談何容易?目前所有的瀏覽器幾乎都面臨了相同的問題。

程式的構成要素
一個應用程式的構成要素有兩個:程序(processes)與執行緒(threads)。
當你執行一個程式,它會開始執行一個程序,這個程序的執行,伴隨著很多執行緒的執行,這些執行緒都分享相同的工作記憶體。程序通常會給予執行緒不同的優先權,去掌握不同類型的工作。
例如,用來繪出應用程式的介面的執行緒通常會有比較高的優先權,因為你在執行一個應用程式的時候,都是先看到介面才能進行操作。而其它比較低優先權的執行緒,這時就先抓著資料等在系統的背景,等高優先權的執行緒執行完畢再來執行。你可以打開Windows的工作管理員,看到目前電腦正執行的程序有哪些。(macOS叫活動監視器Activity Monitor)

有時,一個程序並不是去啟動一個執行緒,而是去啟動另外一個程序。因此,你可以預想到,這樣的作法將會需要用到更多的記憶體以及電腦的效能。因此,大多數的程式,都執行一個單一的程序,但是會使用多執行緒。
不過,瀏覽器不像「大多數」的程式。

我們可以看到,在上圖中,左邊的音樂播放器、文字編輯器、影像編輯器等三個,都是一個程序(黑色虛線框框),裡面有很多執行緒(白色線條)在跑的狀況。而右邊的瀏覽器,則是一個瀏覽器打開了很多的分頁,每一個分頁都是一個程序,裡頭伴隨著無數的執行緒。

現代的網路,為什麼需要多程序的瀏覽器
比較過去Firefox於2004年發佈的時候的Web,那時所謂的Web可能只是一些文件放在網路上,但是隨著時間的發展,現在的Web已經變成了一個平台,不只用來顯示靜態的文件,還可以提供互動程式的功能,像是EMAIL、文書處理、社群服務這些Web應用程式,你都會在瀏覽器上面來實現。
而隨著WEB的新時代來臨,使用者也期待著Firefox或是其它的瀏覽器,能夠像是在WINDOWS或是MAC上可以同時啟動不同應用程式一樣,用那麼快的速度來打開多個Web應用程式。不過,實際上對於瀏覽器廠商來說,是很難做到的。
解法是什麼?解法就是瀏覽器本身必須要學習用作業系統同樣的方式去運作。使用多程序來執行不同的Web應用程式。
而隨著多程序的架構,你會發現,當你在一個分頁觀看一個網頁的時候,這個分頁不幸當掉的時候,你這時切換到另一個分頁,那個分頁的內容你還是可以點選的。並不會因為一個分頁當掉導致所有分頁全當。
過去,Mozilla 工程師雖然了解多程序架構的可行性,但把 Firefox 改為多程序架構卻會影響到單程序架構運作的Firefox 附加元件(Add-On)。因此, Firefox 遲遲不敢改為多程序架構。而相對的,Chrome在設計的時候就採用多程序架構。

為什麼 Chrome 會過熱而 Firefox 不會
透過最新釋出的 Firefox 54 和 Chrome 一樣採用了多處理程序。但是,Chrome瀏覽器吃掉太多電腦的記憶體資源也是有名的,因此, Firefox 54 希望能夠避免這個問題。
Firefox 54 採用了一個折衷的辦法。 Chrome 上如果開啟 10 個分頁,就會開啟10個程序,吃掉10個程序的記憶體,這是導致它吃掉那麼多記憶體的原因。而Firefox 54 則是針對你打開的分頁,最多只開啟4個程序。當你打開第5個分頁,它就會使用前面4個程序中的執行緒。將吃掉的記憶體控制下來。
為什麼是4個? Firefox 團隊表示,因為這是他們評估對於 Firefox 使用者恰當的數量。在一般8GB記憶體的電腦上,電腦用了4個程序的情況下,還有足夠的資源跑其他的程式。
此外,如果電腦的 RAM 超過 8GB,或許想讓 Firefox 啟用更多的內容處理程序。 Firefox 表示現階段可以在網址列中輸入 about:config 後,調整 dom.ipc.processCount 設定的數目。而他們也會在後續的版本,直接將這個修改數量放在設定中讓一般使用者可以調整。

回復

使用道具 舉報

※ 再次提醒您,回覆文章時請遵守下列重要回覆規則︰
  1. 回覆字數必須超過十個中文字以上。
  2. 禁止使用插頭香, 搶頭香, 搶第一, 第一名, NO.1, 坐沙發等無意義的回覆。
  3. 嚴禁草率敷衍的灌水回覆。例如: 推......, 頂......,11111111, good, push, thank you, 謝了, 好看, 謝謝大大, 感謝分享, 支持, 再來 等等。
  4. 禁止使用千篇一律的回覆或複製、引用別人的回覆。禁止使用不知所云的回覆,例如: 3q5ws9dmh。禁止使用中英文或符號組合字。
  5. 回覆文章必須與該主題有關,如有不符將以灌水處理。
※ 違反規則者,抓到輕者積分歸零,嚴重者封鎖IP。


您需要登錄後才可以回帖 登錄 | 立即註冊 | google 登入 facebook 登入 Line 登入

本版積分規則

舉報|Archiver|廣告洽談|5278 / 5278論壇 / 5278手機A片

GMT+8, 2024-12-25 15:33 , Processed in 0.027568 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表