為什么Chrome瀏覽器特愛吃內存

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

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

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

640?wx_fmt=gif

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

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

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

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

640?wx_fmt=png

  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 自己的任務管理器。用這種方法,你可以關閉那些沒有使用但是依然在后臺占用太多內存的標簽或程序。

640?wx_fmt=png

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

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

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

640?wx_fmt=png

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

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


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272461.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272461.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272461.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nyoj--120--校園網絡(scc+縮點)

校園網絡 時間限制:3000 ms | 內存限制:65535 KB難度:5描述南陽理工學院共有M個系,分別編號1~M,其中各個系之間達成有一定的協議,如果某系有新軟件可用時,該系將允許一些其它的系復制并使用該軟件。但該允…

SQL的四種連接用法整理

1、內聯接&#xff08;典型的聯接運算&#xff0c;使用像 或 <> 之類的比較運算符&#xff09;。包括相等聯接和自然聯接。 內聯接使用比較運算符根據每個表共有的列的值匹配兩個表中的行。例如&#xff0c;檢索 students和courses表中學生標識號相同的所有行。 …

簡述 OAuth 2.0 的運作流程

本文將以用戶使用 github 登錄網站留言為例&#xff0c;簡述 OAuth 2.0 的運作流程。 假如我有一個網站&#xff0c;你是我網站上的訪客&#xff0c;看了文章想留言表示「朕已閱」&#xff0c;留言時發現有這個網站的帳號才能夠留言&#xff0c;此時給了你兩個選擇&#xff1a;…

linux庫引入之動態庫靜態庫(生成和使用)

庫&#xff1a; 庫是一種可執行代碼的二進制形式&#xff0c;可以被操作系統載入內存執行。就是將源代碼轉化為二進制格式的源代碼&#xff0c;相當于進行了加密&#xff0c;別人可以使用庫&#xff0c;但是看不到庫中的內容。 如何使用 用戶需要同時具有頭文件和庫。 頭文件…

InstallShield limited edition 生成單個 setup.exe 安裝文件

InstallShield limited edition 生成單個 setup.exe 安裝文件 1.vs里選中當前Setup項目, 2.在vs工具欄中"配置管理器"的下拉列表里,把"Debug"改為"SingleImage" 3.重新編譯 posted on 2016-01-14 09:45 NET未來之路 閱讀(...) 評論(...) 編輯 收…

ASP.NET中高級程序員 面試題

第一部分&#xff1a;互相介紹及了解1.請介紹一下你自己?包括工作經歷和項目經歷&#xff1f;2.請談一下你就最近的一個項目&#xff1f;你在其中的職責和負責的部分?第二部分&#xff1a;一、ASP.NET技術問題選擇性提問。一般可以選擇三五個。1. 簡要說一下.Net的編譯過程.2…

gettimeofday函數

定義&#xff1a; gettimeofday是計算機函數&#xff0c;使用C語言編寫程序需要獲得當前精確時間&#xff08;1970年1月1日到現在的時間&#xff09;&#xff0c;或者為執行計時&#xff0c;可以使用gettimeofday()函數。 使用方法&#xff1a; #include <sys/time.h> i…

SQL Server數據庫設置自動備份策略

一. 簡單介紹SQL Server自帶的維護計劃是一個非常有用的維護工具&#xff0c;能夠完成大部分的數據庫的維護任務.數據庫的備份也是日常工作中非常重要的一個環節。備份的方法非常的多.今天給大家介紹最簡單的一種方法: 直接通過SQL Server Management Studio的圖形界面去設置備…

C3P0在多線程下的maxPoolSize配置

ETL工具完畢的差點兒相同了。今天遇到一個問題。就是給C3P0配置了maxPoolSize為10。目的是想讓整個應用同一時候獲得的最大的Connection個數為10&#xff0c;可是在測試應用的這一部分之后&#xff0c;發現PostgreSQL端的鏈接遠遠超過10個。由于工具是多線程的。所以就想&#…

樹莓派外設開發編程

樹莓派外設開發接口文檔參考 wiringPi&#xff08;特定平臺&#xff0c;特定功能接口&#xff09; 庫&#xff08;linux 動態庫 靜態庫&#xff09; gcc demo1.c -lwiringPi //編譯時要加-lwiringPigpio -v //查看是否安裝wiringPi庫 gpio version: 2.50 Copyright (c) 2012-2…

Bootstrap 5款常用模板

篇文章中&#xff0c;我們已經編制了5款最好的 Bootstrap 4.0 主題模板清單&#xff0c;讓您可以用在下一個項目中&#xff0c;我們希望你能找到有用的。這些主題包含了所有必要的 HTML 和 CSS 為基礎的設計模板的版式&#xff0c;表單&#xff0c;按鈕&#xff0c;導航和其它界…

工作內外網同時連接方案

需求 工作的時候需要用到外網查詢資料&#xff0c;又需要用內網完成工作任務。不想來回切換網絡。 前提 外網使用無線&#xff0c;內網使用水晶頭接口。 方案 1.插入水晶頭接口&#xff08;效果是連接內網&#xff09;。 2.進入 → “控制面板\網絡和 Internet\網絡和共享中心”…

三種常用圖片格式的使用場景

GIF&#xff1a;1&#xff1a;256色2&#xff1a; 無損&#xff0c;編輯 保存時候&#xff0c;不會損失。3&#xff1a;支持簡單動畫。4&#xff1a;支持boolean透明&#xff0c;也就是要么完全透明&#xff0c;要么不透明JPEG&#xff1a;1&#xff1a;millions of colors2&am…

交叉編譯及樹莓派(或其他平臺)交叉編譯工具鏈的安裝

交叉編譯是什么&#xff1a; 交叉編譯是一個行為&#xff0c;是在一個平臺上生成另一個平臺上的可執行代碼。 比如&#xff1a;我們在windows上面編寫C51的代碼&#xff0c;并編譯成可執行代碼&#xff0c;如xx.hex,是在C51上面運行不是在windows上面運行。 同樣&#xff1a;我…

Delphi:ADOConnection連接SQLServer自動斷網問題解決

解決方法一&#xff1a;異常時關閉連接&#xff0c;WinXP&#xff0c;win7 32位大部分情況都是起作用的&#xff0c;不過在有些windows操作系統下&#xff08;如家庭版&#xff09;不起作用&#xff0c;不知為何&#xff1f; try //執行sql操作 except AdoConnection.close;//…

走近北京后廠村程序員的真實生活

來源&#xff1a;中新經緯北京的西北角是個特別的區域&#xff0c;這里匯集了眾多互聯網及IT企業&#xff0c;實力雄厚的上市公司將自家 logo 懸掛在大廈的頂端&#xff0c;而剛起步的創業公司也會選擇在這里租下一畝三分地。中關村、上地、西二旗、后廠村……它們成為了一個個…

帶wiringPi庫的交叉編譯

WiringPi的下載——網盤提取 鏈接&#xff1a;https://pan.baidu.com/s/1cPIt-xZLye1DAQjq2yKzeg 提取碼&#xff1a;35vt &#xff08;這個庫不是很好&#xff0c;鏈接的庫的格式不對&#xff0c;是宿主機的平臺&#xff0c;需要自己將樹莓派的wiringpi庫&#xff08;libwiri…

lintcode:最小編輯距離

最小編輯距離 給出兩個單詞word1和word2&#xff0c;計算出將word1 轉換為word2的最少操作次數。 你總共三種操作方法&#xff1a; 插入一個字符刪除一個字符替換一個字符樣例 給出 work1"mart" 和 work2"karma" 返回 3 解題 動態規劃解題 定義矩陣dp[][]…

這些代碼優化的方法,你都用過嗎?

來自&#xff1a;www.cnblogs.com/xrq730/代碼優化的最重要的作用應該是&#xff1a;避免未知的錯誤在代碼上線運行的過程中&#xff0c;往往會出現很多我們意想不到的錯誤&#xff0c;因為線上環境和開發環境是非常不同的&#xff0c;錯誤定位到最后往往是一個非常小的原因。然…

VMwareTool 安裝

VMwareTools的一些實用性 安裝后用戶可以從物理主機直接往虛擬機里面拖文件。 安裝后鼠標進入虛擬機后可以直接出來&#xff0c;不安裝的話要按CTRLALT才可以釋放鼠標。 安裝后可以解決Ubuntu主窗口分辨率不適應問題&#xff0c;用戶可以隨意改變虛擬機窗口大小&#xff0c;vm…