解決Firefox的無(wú)節(jié)制內(nèi)存占用的問(wèn)題

2010-08-28 10:51:53來(lái)源:西部e網(wǎng)作者:

  如果你使用過(guò)Firefox(中文名稱:火狐),那么你對(duì)它的第一印象肯定是瀏覽速度非?欤∫?yàn)樗J(rèn)使用“先下載網(wǎng)頁(yè)文字結(jié)構(gòu),然后再下載圖片”的瀏覽方式,而IE則采用“網(wǎng)頁(yè)文字和圖片同時(shí)下載”的瀏覽方式。不過(guò)當(dāng)你把常用的插件(也稱“擴(kuò)展”)都安裝上之后,你對(duì)Firefox的印象可能就會(huì)逐漸改觀,原本輕巧的狐貍一下子變成了一只“飲食無(wú)節(jié)制”的肥狐!當(dāng)你打開(kāi)“Windows任務(wù)管理器”之后竟然發(fā)現(xiàn)它已經(jīng)“吃”掉了300多MB內(nèi)存……

  狐貍為什么永遠(yuǎn)喂不飽?

  原本資源占用極小的Firefox何以成為了內(nèi)存占用的元兇呢?原來(lái)是恐怖的“內(nèi)存泄露”!很多人都知道,在編寫(xiě)程序時(shí),要為即將使用的數(shù)據(jù)分配一塊內(nèi)存區(qū)域,然后將數(shù)據(jù)寫(xiě)入這塊內(nèi)存中,在不需要這些數(shù)據(jù)時(shí),就把劃分出去的內(nèi)存區(qū)域給回收進(jìn)“可分配內(nèi)存”中,但有時(shí)因?yàn)槌绦蚓帉?xiě)的疏忽或者編譯器本身的錯(cuò)誤(程序編寫(xiě)疏忽就相當(dāng)于生產(chǎn)產(chǎn)品前設(shè)計(jì)圖就有問(wèn)題,而編譯器本身的錯(cuò)誤則相當(dāng)于正確的設(shè)計(jì)圖在有故障的機(jī)器上生產(chǎn)出了不合格的產(chǎn)品),導(dǎo)致劃分出去的內(nèi)存區(qū)域沒(méi)有被收回來(lái),于是即便只是很小的“內(nèi)存泄露”到最后也會(huì)造成系統(tǒng)資源的完全耗盡!由于Firefox在安裝各種插件程序前并沒(méi)有出現(xiàn)這么嚴(yán)重的內(nèi)存占用,所以我們判斷:Firefox的內(nèi)存泄露問(wèn)題可能是插件造成的!在Mozilla官方和Firefox的技術(shù)論壇中,終于找到了所有會(huì)導(dǎo)致Firefox過(guò)度內(nèi)存占用的原因。

  消滅致病的五大“病原體”

  頭號(hào)病原體:Adblock插件

  致病原因:用慣了Maxthon的用戶肯定會(huì)安裝廣告攔截插件,但是使用最廣泛的廣告攔截插件Adblock在Firefox 1.5版本中存在嚴(yán)重的內(nèi)存泄露問(wèn)題。

  治療方案:卸載Adblock,安裝Adblock Plus并升級(jí)到最新版本。選擇菜單“工具→擴(kuò)展”,在彈出的“擴(kuò)展”窗口中選擇“Adblock 0.52.056”(版本號(hào)可能略有不同),點(diǎn)擊“卸載”(見(jiàn)圖1),完成后關(guān)閉Firefox再重新打開(kāi)。
  Adblock Plus鏈接:https://addons.mozilla.org/extensions/moreinfo.php?id=1865&application=firefox


  二號(hào)病原體:Java

  致病原因:舊版本的Java運(yùn)行庫(kù)導(dǎo)致Firefox內(nèi)存占用嚴(yán)重。

  治療方案:Java用戶請(qǐng)升級(jí)到Java Runtime Environment 1.5.0_06(或以上),另外在Java控制面板中關(guān)閉“Java控制臺(tái)”也可以降低內(nèi)存占用。


  三號(hào)病原體:Adobe Reader

  致病原因:舊版本的Adobe Reader占用了過(guò)多內(nèi)存。

  治療方案:Adobe Reader 6.0/7.0都會(huì)占用大量?jī)?nèi)存,請(qǐng)升級(jí)到 Adobe Reader 7.0.5,如果在Firefox中禁用Adobe Reader插件也可以降低內(nèi)存占用,但建議保留(否則每次都要下載才能看PDF文件實(shí)在不方便)。


  四號(hào)病原體:固定大小的緩存

  致病原因:Firefox默認(rèn)劃分出一塊內(nèi)存區(qū)域用于網(wǎng)頁(yè)緩存。

  治療方案:默認(rèn)狀態(tài)下Firefox的緩存大小不是固定不變的,設(shè)置緩存占用的大小可以降低內(nèi)存消耗,設(shè)置步驟如下:
  在Firefox網(wǎng)頁(yè)地址欄中打開(kāi)“about:config”(不含引號(hào))即進(jìn)入Firefox高級(jí)設(shè)置狀態(tài)(見(jiàn)圖2),在高級(jí)設(shè)置列表中將“browser.cache.memory.capacity”在這里根據(jù)自己的情況設(shè)置緩存大小(雙擊進(jìn)入編輯狀態(tài)),小內(nèi)存的用戶可以考慮將“browser.cache.memory.enable”設(shè)置為False來(lái)完全禁用內(nèi)存中的網(wǎng)頁(yè)緩存,但這樣會(huì)降低Firefox的速度。


  五號(hào)病原體:快進(jìn)快退

  致病原因:快進(jìn)快退為了保證速度而使用了一定的內(nèi)存空間。

  治療方案:進(jìn)入“about:config”的高級(jí)設(shè)置,將“browser.sessionhistory.max_total_viewers”設(shè)置為0。

  小提示

  我們還能對(duì)Firefox進(jìn)一步優(yōu)化來(lái)獲得更小的內(nèi)存占用,比如在高級(jí)設(shè)置中將“config.trim_on_minimize”設(shè)置為true能使Firefox在最小化時(shí)釋放內(nèi)存,安裝NoScript插件禁用JavaScript可以節(jié)省腳本運(yùn)行占用等。

關(guān)鍵詞:Firefox

贊助商鏈接: