如果你使用過Firefox(中文名稱:火狐),那麼你對它的第一印象肯定是浏覽速度非常快!因為它默認使用“先下載網頁文字結構,然後再下載圖片”的浏覽方式,而IE則采用“網頁文字和圖片同時下載”的浏覽方式。不過當你把常用的插件(也稱“擴展”)都安裝上之後,你對Firefox的印象可能就會逐漸改觀,原本輕巧的狐狸一下子變成了一只“飲食無節制”的肥狐!當你打開“Windows任務管理器”之後竟然發現它已經“吃”掉了300多MB內存……
狐狸為什麼永遠喂不飽?
原本資源占用極小的Firefox何以成為了內存占用的元凶呢?原來是恐怖的“內存洩露”!很多人都知道,在編寫程序時,要為即將使用的數據分配一塊內存區域,然後將數據寫入這塊內存中,在不需要這些數據時,就把劃分出去的內存區域給回收進“可分配內存”中,但有時因為程序編寫的疏忽或者編譯器本身的錯誤(程序編寫疏忽就相當於生產產品前設計圖就有問題,而編譯器本身的錯誤則相當於正確的設計圖在有故障的機器上生產出了不合格的產品),導致劃分出去的內存區域沒有被收回來,於是即便只是很小的“內存洩露”到最後也會造成系統資源的完全耗盡!由於Firefox在安裝各種插件程序前並沒有出現這麼嚴重的內存占用,所以我們判斷:Firefox的內存洩露問題可能是插件造成的!在Mozilla官方和Firefox的技術論壇中,終於找到了所有會導致Firefox過度內存占用的原因。
消滅致病的五大“病原體” 頭號病原體:Adblock插件 致病原因:用慣了Maxthon的用戶肯定會安裝廣告攔截插件,但是使用最廣泛的廣告攔截插件Adblock在Firefox 1.5版本中存在嚴重的內存洩露問題。
治療方案:卸載Adblock,安裝Adblock Plus並升級到最新版本。選擇菜單“工具→擴展”,在彈出的“擴展”窗口中選擇“Adblock 0.52.056”(版本號可能略有不同),點擊“卸載”(見圖1),完成後關閉Firefox再重新打開。
Adblock Plus鏈接:https://addons.mozilla.org/extensions/moreinfo.php?id=1865&application=firefox
二號病原體:Java 致病原因:舊版本的Java運行庫導致Firefox內存占用嚴重。
治療方案:Java用戶請升級到Java Runtime Environment 1.5.0_06(或以上),另外在Java控制面板中關閉“Java控制台”也可以降低內存占用。
三號病原體:Adobe Reader 致病原因:舊版本的Adobe Reader占用了過多內存。
治療方案:Adobe Reader 6.0/7.0都會占用大量內存,請升級到 Adobe Reader 7.0.5,如果在Firefox中禁用Adobe Reader插件也可以降低內存占用,但建議保留(否則每次都要下載才能看PDF文件實在不方便)。
四號病原體:固定大小的緩存 致病原因:Firefox默認劃分出一塊內存區域用於網頁緩存。
治療方案:默認狀態下Firefox的緩存大小不是固定不變的,設置緩存占用的大小可以降低內存消耗,設置步驟如下:
在Firefox網頁地址欄中打開“about:config”(不含引號)即進入Firefox高級設置狀態(見圖2),在高級設置列表中將“browser.cache.memory.capacity”在這裡根據自己的情況設置緩存大小(雙擊進入編輯狀態),小內存的用戶可以考慮將“browser.cache.memory.enable”設置為False來完全禁用內存中的網頁緩存,但這樣會降低Firefox的速度。
五號病原體:快進快退 致病原因:快進快退為了保證速度而使用了一定的內存空間。
治療方案:進入“about:config”的高級設置,將“browser.sessionhistory.max_total_viewers”設置為0。
小提示 我們還能對Firefox進一步優化來獲得更小的內存占用,比如在高級設置中將“config.trim_on_minimize”設置為true能使Firefox在最小化時釋放內存,安裝NoScript插件禁用JavaScript可以節省腳本運行占用等。