微軟用慣用的手法——改名——給IE被黑的一生畫上了句號(hào)。還好,它在技術(shù)段子圈里早就有了接班人:Chrome。
Chrome很好很強(qiáng)大,速度極快、功能很多。但同時(shí)它也是你的電腦內(nèi)存不足或者耗電太快的罪魁禍?zhǔn)。沒辦法,Chrome太愛吃內(nèi)存了(如頭圖)。
為什么?我們找到了4個(gè)最關(guān)鍵的答案,不需要特別懂技術(shù)也可以理解。
1、Chrome把你在瀏覽器上做的每件事都拆成獨(dú)立的進(jìn)程
在大多數(shù)PC操作系統(tǒng)中,各種軟件和服務(wù)是以進(jìn)程(Process)的形態(tài)出現(xiàn)并保存在系統(tǒng)的內(nèi)存當(dāng)中的。然而,隨著Web技術(shù)的發(fā)展,瀏覽器功能日益強(qiáng)大,現(xiàn)在大多數(shù)人會(huì)發(fā)現(xiàn),使用電腦不再需要安裝各種各樣的軟件,很多工作在瀏覽器中就能完成。Chrome支持各種各樣的插件和擴(kuò)展,為瀏覽器增添功能,其中很多插件和擴(kuò)展干脆就已經(jīng)是一個(gè)打包好可以在本地使用的軟件。
過多的軟件、功能和服務(wù)勢(shì)必意味著瀏覽器的體型會(huì)變得臃腫,而如果一個(gè)瀏覽器只是一個(gè)進(jìn)程的話,一旦出現(xiàn)系統(tǒng)故障,整個(gè)瀏覽器就崩潰了——那意味著你瀏覽的所有內(nèi)容、輸入的文本和打開的軟件、觀看的視頻、在網(wǎng)頁(yè)上玩的小游戲,全都沒了。而Chrome會(huì)把所有打開的網(wǎng)頁(yè)標(biāo)簽、插件、擴(kuò)展,以及播放的Flash視頻都拆成獨(dú)立的進(jìn)程。這樣,一個(gè)進(jìn)程崩潰,不會(huì)影響到瀏覽器的其他功能正常運(yùn)轉(zhuǎn)。
這樣做的優(yōu)勢(shì)是瀏覽器功能多,且快速穩(wěn)定;劣勢(shì)就是占用很多內(nèi)存。
2、在你沒點(diǎn)擊URL之前,Chrome已經(jīng)在幫你加載了
更好的用戶體驗(yàn)與更大的系統(tǒng)資源壓力就像是雙生子。Chrome瀏覽器提供一個(gè)預(yù)加載功能(Chrome Prerendering),在用戶還沒有點(diǎn)擊某個(gè)鏈接的時(shí)候就已經(jīng)提前開始加載了。
比如,如果瀏覽的是博客文章,Chrome有可能會(huì)預(yù)先加載「下一篇博文」;再比如,如果你在Google上搜索某個(gè)學(xué)術(shù)名詞的話,Chrome有可能會(huì)預(yù)先加載來自維基百科的結(jié)果
有時(shí)候你會(huì)發(fā)覺,第一次登陸某個(gè)網(wǎng)頁(yè)的時(shí)候很慢,但后來再在地址欄輸入訪問,會(huì)快很多。這是因?yàn)镃hrome會(huì)基于歷史瀏覽記錄和對(duì)該網(wǎng)頁(yè)的安全性判斷,預(yù)先加載這個(gè)網(wǎng)頁(yè)。
3、內(nèi)存泄露
內(nèi)存泄露是一個(gè)技術(shù)上的名詞,簡(jiǎn)單來說,他的意思就是占用內(nèi)存的軟件或服務(wù),在完成工作之后無法釋放那些不再使用的內(nèi)存。歷史上有一些非常經(jīng)典的內(nèi)存泄露事故,比如在某個(gè)版本的Mac OS X操作系統(tǒng)上,以原生、快速和低內(nèi)存以來著稱的Safari瀏覽器,竟然能把本機(jī)所有的內(nèi)存全都占掉,以至于其他程序無法正常工作,甚至系統(tǒng)都開始不穩(wěn)定。
Chrome瀏覽器也會(huì)出現(xiàn)內(nèi)存泄露問題,不過現(xiàn)在瀏覽器本身已經(jīng)比較穩(wěn)定了。不穩(wěn)定的地方在于部分樣式或功能復(fù)雜的網(wǎng)站,以及一些代碼不干凈的Chrome插件和擴(kuò)展。前幾天,一位Android Chrome工程師在Reddit上表示,有團(tuán)隊(duì)正在積極研究如何解決桌面版Chrome的擴(kuò)展和插件內(nèi)存泄露問題。
4、開了太多標(biāo)簽和插件
前面提到,很多以擴(kuò)展形式存在的Chrome本地應(yīng)用功能也已經(jīng)十分強(qiáng)大,Web技術(shù)日新月異使得很多網(wǎng)站在瀏覽器中呈現(xiàn)所占用的內(nèi)存也已經(jīng)不亞于一個(gè)普通的本地軟件。這個(gè)不用過多解釋。
Chrome占內(nèi)存到底好不好?
你需要記住一句話:空閑的內(nèi)存是沒用的。(free RAM is useless RAM)
內(nèi)存的功能是在本地一個(gè)高速短期存儲(chǔ)空間內(nèi)放置進(jìn)程,從而在使用或未使用但需要喚醒的時(shí)候更快地加載出來。因此,短期的高內(nèi)存占用并不是壞事,它優(yōu)化了使用體驗(yàn)——可以說,內(nèi)存存在的意義就是被占用。
但長(zhǎng)期高內(nèi)存占用就不是好事了。長(zhǎng)期高內(nèi)存占用可能和前面提到的網(wǎng)頁(yè)/插件/擴(kuò)展內(nèi)存泄露問題有關(guān),也有可能由用戶不良使用習(xí)慣導(dǎo)致。過多內(nèi)存被占用會(huì)導(dǎo)致提供給其他軟件或服務(wù)的內(nèi)存資源不足,導(dǎo)致系統(tǒng)不穩(wěn)定。另外,絕大多數(shù)操作系統(tǒng)都有虛擬內(nèi)存功能,也就是在硬盤上設(shè)立一塊空間當(dāng)做內(nèi)存。這是內(nèi)存不足時(shí)的替代方案,顯然對(duì)硬盤的讀取速度要比對(duì)內(nèi)存的讀取速度慢得多。
怎樣解放Chrome內(nèi)存?
1、查看任務(wù)/進(jìn)程管理器,關(guān)掉占用大量?jī)?nèi)存的進(jìn)程
在Windows Chrome上按Shift+Esc,或者在Mac上點(diǎn)擊窗口→任務(wù)管理器,喚醒Chrome自己的任務(wù)管理器。用這種方法,你可以關(guān)閉那些沒有使用但是依然在后臺(tái)占用太多內(nèi)存的標(biāo)簽或程序。
2、卸載不需要的擴(kuò)展和插件
3、保持Flash視頻播放插件不自動(dòng)播放
點(diǎn)擊設(shè)置→高級(jí)設(shè)置→隱私設(shè)置→內(nèi)容設(shè)置,選擇不自動(dòng)打開插件。
4、用工具來管理閑置的標(biāo)簽