煥然一新的Firefox,以及多到嚇人的分頁

Mozilla Taiwan
4 min readJul 31, 2017

--

本文作者:Dietrich Ayala

我的 Firefox Profile 裡有 1,691 個分頁。

為什麼這麼多?一句話帶過,那是我長時間埋首產品設計和改善網路未來的結果。

您或許猜到了,許久以來,Firefox 在這方面處理得不夠好。我已經習慣了得等幾分鐘才能打開瀏覽器、等 15–30 秒才能載入外部應用的分頁,還有種種遲鈍的反應。

不過,就在最近,一切都改變了。

量子流(Quantum Flow)

我已經在 Mozilla 工作 10 幾年了。這麼多年以來,我還從來不曾看過我們把如此多的心力放在加快 Firefox 的運作速度上。

在各項改善工作中,其中一個是匯聚許多工程師之力,以提高 Firefox 回應速度為目標的「量子流」(Quantum Flow)計畫。對這些資訊有興趣的朋友,可以參考 Ehsan Akhgari 每週發表的文章

我做了點測試。這些測試中所記錄到 Firefox 的改善,多半得歸功於 Kevin Jones 把未載入分頁的整體成本盡可能降為零的努力。雖然他的努力已經開花結果,但相關的改進工作仍在 Bug 906076 中繼續進行。除了 Kevin 以外,還要感謝 Dão Gottwald、Mike de Boer、Tim Taubert、David Teller、Mike Conley和 Gijs Kruitbosch,拯救許多像我一樣病態囤積分頁的患者。

測試情境

我在 Firefox 20、30、40 和 50 到 56 上,測試開啟我那 1,691 個分頁設定所需的啟動時間與記憶體用量。

這些只是我個人的測試結果。如果你要做測試的話,結果不見得相同。假使你也用1,691(或甚至1,692)個分頁測試,卻出現完全不同的結果,希望你可以跟我分享。

說明:

  • 我關掉 Macbook 上大部分的程式(我的是小台的 Macbook,不比 iPad 大多少)
  • 我也把 Wi-Fi 關了。因為我要測的是 Firefox 的速度,不是網速或網頁渲染的速度
  • 我用眼睛讀時間,只採用指令行上的「 time cat 」時間。這聽來有點怪,但畢竟我只需要測到「分鐘」級的時間即可,不必到微秒那麼精確
  • 我會測試五次,然後把最高和最低的紀錄刪除。不過,其實那並非必要,因為令人驚奇的是,每次測試得到的結果都相當一致。考量到我有將近 1,700 個分頁,啟動時間又超過 5 分鐘,標準差可以忽略
  • 針對啟動時間的計算,當開啟的分頁跑出「server not found」頁後,我就會停止計時。因為我經過多次測試後發現,從那時間點以後,應用程式便可回應和可用
  • 針對記憶體,我則在啟動測試開始一分鐘後,抓螢幕下方「about:memory」的總值。之所以要等一分鐘,是因為我觀察到,記憶體會在分頁開啟後突然暴增,但又會在一分鐘內下降並維持長時間穩定的數值
  • 我在 Firefox 20、30、40,以及從 50 一直到 56 的各個版本上測試。我試圖也用 Firefox 10 測,但系統在載入 profile 時死當

啟動時間

下圖是以 Firefox 20、30、40、50~56 開啟 1,691 個分頁所需的時間。縱(Y)軸的單隊是分鐘。是的,Firefox 51 需要將近 8「分鐘」啟動。不過,Firefox 55 則只需要 15「秒」。1,691 個分頁只需 15 秒,你沒看錯。我再也不必擔心得重新啟動了。最近,我只會為了好玩而重新開啟。

有意思的是,在 Firefox 51 以前,Firefox 的啟動時間越拉越長。如果能用不同數量的分頁做同樣的測試、看看哪個版本以後時間變長,應該會很有趣。

記憶體用量

下圖是 Firefox 20、30、40、50~56 在 1,691 個分頁開啟一分鐘後的記憶體用量。過去大多需要 2GB,現在已減少到 0.5GB 以內了。當然,這是還沒載入網頁的用量,但請注意:我等於足足多出 1.5GB 的記憶體來載入網頁。

Firefox、Gecko 和 Servo 團隊努力不懈地想讓 Firefox 變成「超級快速」的瀏覽器。他們的心血結晶已經化為「有感」的改變,確實令人振奮。

原文連結

--

--

Mozilla Taiwan

我們是Mozilla 美商謀智台灣分公司,由非營利組織 Mozilla 基金會所擁有,在台灣為自由開放的網路未來而努力。