T客邦 August 14, 2015
Chrome是普及率最高的瀏覽器,除了擁有速度快的優勢,又有Google的品質保證,難怪大家趨之若鶩。不過Chrome卻有非常吃記憶體的現象,剛開始還沒有任何徵狀,直到硬碟狂轉加上效能低落,才驚覺Chrome已經霸佔了記憶體資源。Chrome為何這麼耗記憶體?我們又該怎麼因應呢?高速瀏覽的代價是耗費記憶體

▲Chrome將記憶體吃掉的示意圖。

早期的瀏覽器只需處理文字與圖片,隨著網路環境的多樣化,瀏覽器的結構漸趨複雜,已經超過我們想像的程度。現在的瀏覽器得額外負擔以下任務:撥放音訊與視訊、下載續傳管理、讀取PDF文件檔,執行Flash以與其他網路程式,簡直就是包山包海,比某島國的責任制員工還要辛苦。

Chrome的原則很單純:每個分頁、插件與擴張套件都有獨立的運算行程,就算任何一個行程停止回應(如Flash),也不影響其他行程的運作,對整體的穩定性很有幫助。相對地,Chrome耗費的運算資源較高,記憶體使用率更是凌駕於其他瀏覽器。平時還無所謂,一旦同時執行耗費記憶體的應用程式,下場可想而知。

▲Chrome的記憶體使用量破200MB。

Chrome以高速瀏覽為號召,採用許多手段提升瀏覽效率,像是預先載入功能(Chrome Prerendering)之類,這些功能都得耗費大量記憶體。更傷腦筋的是,就算將耗費資源的對應分頁關閉,Chrome也不一定會立刻釋放其佔用的記憶體,導致Chrome的記憶體消費如同滾雪球般越滾越大。

使用者想必對此十分不滿,認為Chrome根本就是在找麻煩。然而換個角度思考,Chrome惹人非議的癥結,在於記憶體的使用沒有拿捏得很精準。為了提供迅速便捷的瀏覽環境,免除無謂的等候與讀取,Chrome不得不耗費較高的記憶體,這也是沒辦法的事。

避免讓記憶體塞爆

▲Chrome小精靈將豆子記憶體吃下肚。

當使用者檢視Chrome的行程管理員,想必會被其內容給嚇一大跳,Chrome的記憶體使用量居然如此龐大!我們得先了解一個事實:閒置的記憶體等於無用的記憶體。我們可以將記憶體視為一個大型倉貯,裡面的內容無法永久保存,得將內容反覆存入與釋放來維持運作。若電腦不需要太多內容,記憶體便會將其釋放,騰出空間給之後的行程使用。

只要沒把記憶體塞爆,記憶體使用量大並非壞事。真正的壞事是讓記憶體經常處於塞爆的狀態,電腦得在有限的記憶體空間內存入與釋放,無法妥善運用記憶體資源,進而拖累系統效能。當使用者發現狀況不對時通常為時已晚,就算立刻關閉占用記憶體的分頁或程式,電腦效能低落的狀況也無法立刻改善。

▲要駕馭Chrome得費一番工夫。

換言之,我們不須苛責Chrome耗費記憶體,他只是在盡自己的本分。若陷入記憶體塞爆的窘境,除了檢討Chrome,也該檢視其他的可能性,如記憶體真的太少,或是瀏覽器使用習慣不佳等等。

(下一頁還有:如何抑制Chrome的記憶體消費)

設定限制Chrome的記憶體消費

 

▲選取右下角的『結束處理程序』即可卸載程式。

我們知道Chrome貪吃記憶體的幕後原因,但是這不代表我們要放任Chrome繼續蠶食鯨吞記憶體。我們有兩種方式可以對付Chrome-降低Chrome的記憶體消費,或是添購更多記憶體。後者是最簡單的方法,卻很難用在行動裝置或筆電上,所以我們得把重點鎖定在前者,犧牲便利性換取更多記憶體。

首先打開你的Chrome,按下Shift + Esc,叫出Chrome的工作管理員(Mac使用者則是選擇上面的『視窗』→『工作管理員』)。或是在Chrome視窗上緣按下右鍵,並選取倒數第二的『工作管理員』。在工作管理員視窗裡,你可以準確把握Chrome每個分頁與外掛程式的記憶體使用量。

▲利用Chrome的工作管理員監控記憶體使用狀況。

下一步就很明顯了,就是拿記憶體使用量高的工作開刀。以上面這張圖為例,記憶體使用量最高的就是Youtube的影片,將分頁關閉專心工作吧。如果佔用記憶體的對象是外掛程式,可以用滑鼠選取工作,然後點選右下角的『結束處理程序』。如果對象是實用性較低的應用程式,可以選擇『設定』→『擴充功能』將其反安裝。

▲進入擴充功能選單管理外掛程式。

至於Flash這類的記憶體怪獸比較難搞,不過還是有辦法對付。Chrome預設是自動執行所有的Flash,假如不小心前往某些Flash使用量超大的網頁,記憶體使用量就會瞬間暴增。

▲選取第三個『我要自行選擇執行外掛程式內容的時機』。

較理想的做法是讓使用者自己點選想執行的Flash。選擇『設定』→點選最下面的『顯示進階設定』→隱私權的『內容設定』→外掛程式的『我要自行選擇執行外掛程式內容的時機』,之後網頁就不會主動執行Flash或是外掛程式,使用者得用手動選取的方式來執行。

當然,這麼做可能帶來許多不便。你可以選擇『管理例外情況』,將信任的網域加進例外清單,像是Youtube或Plurk。或是利用『管理個別外掛程式』,將較無害的外掛程式加進去,如PDF viewer。

控管分頁的實用插件

▲《The Great Suspender》能夠自動卸載閒置過久的分頁。

手動控管記憶體十分有效,不過每次都得親自動手實在很囉唆。建議安裝額外的分頁管理插件,讓你不需事必躬親。明明要節省記憶體,卻要安裝本身就會佔用記憶體的插件,聽起來似乎有些矛盾,不過請放心,好的插件絕對是利大於弊。

第一個要推薦的就是《The Great Suspender》,這個插件能夠在一段時間後自動卸載分頁所使用的記憶體,而不需實際關閉分頁,適合喜歡開啟許多分頁的使用者。唯一的缺點是選取記憶體已卸載的分頁時,得花點時間重新讀取分頁,但是整體而言仍舊十分好用。

▲《OneTab》把所有分頁收納進單一分頁。

第二個推薦的插件為《OneTab》,他的功能與上面的The Great Suspender很類似,只不過沒有自動功能。如果分頁短期間不會使用,又不想將其關閉,就可以按下OneTab的功能鍵,OneTab會自動將所有分頁關閉,並彙整於單一分頁,提供超連結供使用者選取回復,上手之後的便利性不輸The Great Suspender。

結語:Chrome是一匹難駕馭的千里馬

▲巧妙駕馭Chrome幫助你縱橫網路。

Chrome就像一匹難駕馭的千里馬,提供使用者高速的網路瀏覽環境,可是如果一個不小心,Chrome反而會將使用者摔下馬背。使用瀏覽器的行為本質就是一種取捨,追求效率就得犧牲記憶體,追求穩定就得犧牲速度。Chrome效能強勢,使用者得花點心思才能順利駕馭,當你找到駕馭他的方法,就能騎著他行萬里路。

加入T客邦Facebook粉絲團 固定链接 '為什麼 Chrome 這麼會吃記憶體?' 提交: August 14, 2015, 11:00pm CST