減少 Chrome 的記憶體占用空間是團隊今年的首要任務之一。我們已透過改善 V8 的垃圾收集程序,將 GMail 的記憶體用量減少了 45%,但這只是我們努力的開端。我們下一個記憶體用量實驗的對象是分頁囤積者 (像我一樣)。這就是所謂的「分頁捨棄」。

分頁捨棄功能已在 Chrome 46 以上版本中以實驗功能推出。
背景
每個分頁的轉譯器處理程序通常會占用約 50 MB 的空間,即使大多數使用者一次只使用一個分頁也是如此。如果你開啟了 10 個分頁,至少需要 450 MB 的記憶體來維持背景分頁狀態。這可能會隨著時間推移而變得難以管理。

我們的目標之一,是減少你「未」使用的分頁所使用的記憶體。如果我查看 Chrome 工作管理員中哪些分頁會耗用系統記憶體,我實際上只「使用」下方一或兩個網站,而背景中的其他分頁則未使用。

這時,捨棄分頁就能協助我們減少記憶體用量。
捨棄未使用的分頁
當 Chrome 偵測到系統記憶體不足時,分頁捨棄功能可讓 Chrome 自動捨棄你不太感興趣的分頁。什麼是「捨棄」?廢棄的分頁不會消失,我們會將其終止,但它仍會顯示在 Chrome 分頁列上。如果您返回已捨棄的分頁,系統會在您點選時重新載入該分頁。表單內容、捲動位置等項目的儲存和還原方式,與前進/後退分頁導覽時相同。
我們也推出了另一項新功能,可讓您在離線時,將所有分頁資源快取到本機,並與分頁捨棄功能搭配使用。重新啟用分頁時,您可以選擇重新載入先前透過網路載入的快取版本。如要啟用快取中的網頁重新載入功能,您可以嘗試在 chrome://flags/#show-saved-copy
下執行其他實驗。
您可以透過 chrome://flags/#enable-tab-discarding
啟用分頁捨棄功能,然後重新啟動 Chrome,即可立即試用。您可以透過同一個 Chrome chrome://flags
頁面,控制是否啟用或停用這項功能。


我們推出名為 chrome://discards
的新頁面,讓您列出目前開啟的分頁,並提供一些洞察資料,說明這些分頁對您來說有多有趣 (從最有趣到最無趣)。

如要測試這項功能,您可以執行一般瀏覽行為,直到系統進入低記憶體模式,或者點選「現在捨棄分頁」來觸發「about:discards」中的分頁捨棄作業。這項操作會捨棄清單中的最後一個分頁。您也可以按一下清單中特定分頁的對應「捨棄」按鈕,將該分頁捨棄。已捨棄的分頁會顯示「[Discarded]」前置字串。

分頁捨棄功能會按照以下順序捨棄分頁:
- 內部網頁,例如新分頁頁面、書籤等
- 很久以前選取的分頁
- 最近選取的分頁
- 在視窗中執行的應用程式
- 已固定的分頁
- 所選分頁
我們已在 Windows 和 Mac OS 的 Chrome Canary 中啟用分頁捨棄實驗,Linux 實作功能也即將推出。

靈感:嗨,優秀的懸掛裝置
如果分頁捨棄功能聽起來很熟悉,可能是因為你可能曾經使用過實用的 Chrome 擴充功能,例如 The Great Suspender,這類擴充功能可提供更簡單的功能。Great Suspender 的目標是在閒置一段自訂時間後,將分頁暫停,以減少 Chrome 的記憶體和 GPU 足跡。

與捨棄分頁類似,當您需要再次與分頁互動時,可以取消暫停分頁。Great Suspender 會保留每個分頁的標題和 favicon,並以灰階狀態顯示已暫停的分頁,方便您隨時返回這些分頁。

背景中我未積極使用的分頁已暫停,可節省記憶體空間。不過,我仍在積極使用的分頁 (GitHub 和 YouTube) 仍可正常運作。
在開發分頁捨棄功能時,我們與 Great Suspender 擴充功能作者進行了非常棒的對談,他們很高興看到我們以原生方式解決這個問題,而且比擴充功能更有效率,例如不會遺失使用者不活動的狀態。
未來改善項目:分頁序列化工具
分頁序列化器是我們認為可大幅改善目前分頁捨棄方法的未來工作。它會擷取 Chrome 分頁的內容,並將其「目前」狀態序列化為二進位資料 blob。這個二進位 blob 之後可再序列化為分頁。
序列化器會序列化 Chrome、Blink 和 V8 需要的所有內容,以便妥善保留分頁 (Chrome 擴充功能在處理這項問題時,過去無法輕易達成此目標)。序列化會包含常見的嫌疑對象:DOM (包含大量 WebGL 和 Canvas)、CSS 和 V8 JavaScript VM 的狀態。

如果您使用 Android 或 ChromeOS,可能知道我們會積極關閉背景分頁,以確保記憶體用量偏低 (類似本篇文章所述的分頁捨棄實驗)。我們解決這個問題的方式會導致分頁失去 *所有* 狀態。
當您再次對分頁感興趣時,我們必須重新載入該分頁,而您與該分頁的所有互動都會遺失。分頁序列化器只會以這種方式處理這個問題,讓您幾乎可以完全恢復原狀,而無須回到網路。我們期待日後能與您分享更多相關資訊。
試用分頁捨棄功能,並與我們分享你的想法
我們很想知道這項功能對您是否實用,以及如何改善。歡迎試用並玩玩看 (尤其是如果你是分頁狂),並在留言中告訴我們你的想法。:) 另外,如果您在 crbug.com 上遇到任何錯誤,也歡迎您提出支援單。