4個理由讓你不懂技術也能明白:為什么Chrome瀏覽器特愛吃內存

jopen 9年前發布 | 8K 次閱讀 Chrome

4個理由讓你不懂技術也能明白:為什么Chrome瀏覽器特愛吃內存

英文原文:Why Chrome Uses So Much Freaking RAM

微軟用慣用的手法——改名——給 IE 被黑的一生畫上了句號。還好,它在技術段子圈里早就有了接班人:Chrome。

Chrome 很好很強大,速度極快、功能很多。但同時它也是你的電腦內存不足或者耗電太快的罪魁禍首。沒辦法,Chrome 太愛吃內存了(如頭圖)。

為什么?我們找到了 4 個最關鍵的答案,不需要特別懂技術也可以理解。

1. Chrome 把你在瀏覽器上做的每件事都拆成獨立的進程

在大多數 PC 操作系統中,各種軟件和服務是以進程(Process)的形態出現并保存在系統的內存當中的。然而,隨著 Web 技術的發展,瀏覽器功能日益強大,現在大多數人會發現,使用電腦不再需要安裝各種各樣的軟件,很多工作在瀏覽器中就能完成。Chrome 支持各種各樣的插件和擴展,為瀏覽器增添功能,其中很多插件和擴展干脆就已經是一個打包好可以在本地使用的軟件。

過多的軟件、功能和服務勢必意味著瀏覽器的體型會變得臃腫,而如果一個瀏覽器只是一個進程的話,一旦出現系統故障,整個瀏覽器就崩潰了——那意 味著你瀏覽的所有內容、輸入的文本和打開的軟件、觀看的視頻、在網頁上玩的小游戲,全都沒了。而 Chrome 會把所有打開的網頁標簽、插件、擴展,以及播放的 Flash 視頻都拆成獨立的進程。這樣,一個進程崩潰,不會影響到瀏覽器的其他功能正常運轉。

這樣做的優勢是瀏覽器功能多,且快速穩定;劣勢就是占用很多內存。

4個理由讓你不懂技術也能明白:為什么Chrome瀏覽器特愛吃內存

2. 在你沒點擊 URL 之前,Chrome 已經在幫你加載了

更好的用戶體驗與更大的系統資源壓力就像是雙生子。Chrome 瀏覽器提供一個預加載功能(Chrome Prerendering),在用戶還沒有點擊某個鏈接的時候就已經提前開始加載了。

比如,如果瀏覽的是博客文章,Chrome 有可能會預先加載「下一篇博文」;再比如,如果你在 Google 上搜索某個學術名詞的話,Chrome 有可能會預先加載來自維基百科的結果

有時候你會發覺,第一次登陸某個網頁的時候很慢,但后來再在地址欄輸入訪問,會快很多。這是因為 Chrome 會基于歷史瀏覽記錄和對該網頁的安全性判斷,預先加載這個網頁。

3. 內存泄露

內存泄露是一個技術上的名詞,簡單來說,他的意思就是占用內存的軟件或服務,在完成工作之后無法釋放那些不再使用的內存。歷史上有一些非常經典 的內存泄露事故,比如在某個版本的 Mac OS X 操作系統上,以原生、快速和低內存以來著稱的 Safari 瀏覽器,竟然能把本機所有的內存全都占掉,以至于其他程序無法正常工作,甚至系統都開始不穩定。

Chrome 瀏覽器也會出現內存泄露問題,不過現在瀏覽器本身已經比較穩定了。不穩定的地方在于部分樣式或功能復雜的網站,以及一些代碼不干凈的 Chrome 插件和擴展。前幾天,一位 Android Chrome 工程師在 Reddit 上表示,有團隊正在積極研究如何解決桌面版 Chrome 的擴展和插件內存泄露問題。

4. 開了太多標簽和插件

前面提到,很多以擴展形式存在的 Chrome 本地應用功能也已經十分強大,Web 技術日新月異使得很多網站在瀏覽器中呈現所占用的內存也已經不亞于一個普通的本地軟件。這個不用過多解釋。

Chrome 占內存到底好不好?

你需要記住一句話:空閑的內存是沒用的。(free RAM is useless RAM)

內存的功能是在本地一個高速短期存儲空間內放置進程,從而在使用或未使用但需要喚醒的時候更快地加載出來。因此,短期的高內存占用并不是壞事,它優化了使用體驗——可以說,內存存在的意義就是被占用。

但長期高內存占用就不是好事了。長期高內存占用可能和前面提到的網頁/插件/擴展內存泄露問題有關,也有可能由用戶不良使用習慣導致。過多內存 被占用會導致提供給其他軟件或服務的內存資源不足,導致系統不穩定。另外,絕大多數操作系統都有虛擬內存功能,也就是在硬盤上設立一塊空間當做內存。這是 內存不足時的替代方案,顯然對硬盤的讀取速度要比對內存的讀取速度慢得多。

怎樣解放 Chrome 內存?

1. 查看任務/進程管理器,關掉占用大量內存的進程

在 Windows Chrome 上按 Shift+Esc,或者在 Mac 上點擊窗口→任務管理器,喚醒 Chrome 自己的任務管理器。用這種方法,你可以關閉那些沒有使用但是依然在后臺占用太多內存的標簽或程序。

4個理由讓你不懂技術也能明白:為什么Chrome瀏覽器特愛吃內存

2. 卸載不需要的擴展和插件

3. 保持 Flash 視頻播放插件不自動播放

點擊設置→高級設置→隱私設置→內容設置,選擇不自動打開插件。

4個理由讓你不懂技術也能明白:為什么Chrome瀏覽器特愛吃內存

4. 用工具來管理閑置的標簽

前兩天我們剛剛介紹過的 The Great Suspender 就是這樣一個優秀的工具。它可以根據設置自動休眠掉當前不使用的標簽,節省系統資源。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!