舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

幫你的Firefox減減肥-解決Firefox耗用資源的對策

出自 MozTW Wiki

於 2006年4月19日 (三) 16:17 由 Tenki對話 | 貢獻 所做的修訂 下載記錄:說明

(前言)


這是在下原先放在討論版的一篇翻譯文,在下先看看討論版的意見之後才"移植"到Wiki上。

原文來源自 : "Reducing memory usage (Firefox)"(自MozillaZine Knowledge Base )

原文很簡單扼要,為了使初學者或老手都看一眼就能上手,我採取了一些做法:

  • 原文翻譯的部份,去掉不必要的,把字體強化作為重點提要放在標題的下方 - 接著算是自己再加點補充。
  • 補充的地方多半是細節上的說明;還有為了增加可讀性,必要的地方再加了點圖片。
  • 原文中許多只能連到英文的文件,我在這裡儘可能去除了,改加進簡單的節要翻譯。

相信這樣大家看起來會方便的多

歡迎各位針對此文做任何指正,討論板留言位置在這裡

感謝各位幫忙


--Tenki 2006年4月19日 (CST)



http://www.mozillazine.org/image/default/sky.png

解決Firefox耗用資源的對策

  • 對大多數用戶來說,Firefox 並不會使用異常大量的記憶體。然而,對其他用戶來說 Firefox 的記憶體耗用量是一個重大問題。
  • Windows回報了典型的Firefox 記憶用量大約是50-100 MB,虛擬記憶體用量則在100-150 MB 。這些數據會因為Firefox在系統擁有更多或更少可利用的記憶體下而被預設了使用更多記憶故會有所變動。
  • 如果您遭遇到實質上比此更大的使用量,那也許就是個問題,或者您只是正瀏覽了帶有大量資料的網頁。

如果你在Windows上使用Firefox,使用工作管理員裡的"處理程序"就能看到你的Firefox正佔用了你的多少記憶體。

50-100MB或是100-150M虛擬記憶是在什麼情況下的數據?正因為Firefox本身擴充的自由度大,加上各人瀏覽網頁的習慣常比所謂的"典型"複雜的多,所以這數據其實不一定符合你的Firefox實際情況。你有可能在完全不擴充Firefox而且完全只拿來看網頁郵件(最好是像gmail這一類的)的情況下,得到的數據連50M的一半都不到;也有可能你的Firefox光是啟動完成就會已經超過了100M。

http://homepage13.seed.net.tw/web@3/tenki/General/Pics/Firefox/clean.JPG

像這樣低的的記憶體使用量應該不可能出現在您正在使用的Firefox上,事實上這是首次安裝下,除了首頁外完全不開網頁"最乾淨"的Firefox使用量。

從之前眾多的討論中可看出,超過100M甚至比150M略高應該是很普遍的現象,上面所寫的範圍並不精確作為參考就好。除非您使用習慣單純(例如不會動輒打開幾十個視窗或分頁)且擴充的結果也正常,但是遇到的數據卻比150M還高出數倍,否則就算在所謂"重度使用"的情況下,Firefox高於上述的使用量仍然算是正常的,你也應該不會因此感覺到Firefox運作發生異常。

文章的內容主要提供了影響Firefox記憶體消耗量的所有成因及可能解決的辦法,至於適用對象較偏向Windows平台的用戶,但其他平台通常也只有設定上的差異而已。有一點要強調的是,他們只是"可能解決"的辦法,有些方法對您的Firefox也許不會有任何效用;有些地方若設定不當,結果會適得其反甚至發生不可預期的錯誤。因此方法縱然簡單也請務必小心謹慎的使用它,好確保您的Firefox運作順暢。


擴充套件和佈景主題

  • 觀察在安全模式下的Firefox的記憶用量將能告訴您某個*擴充套件或佈景主題造成記憶問題。
  • 如果您發現記憶用量大幅減少, 您也許就能發現更新或者替換掉擴充套件或佈景主題可耗用更少的記憶體。
  • 若仍不行的話,移除該擴充套件或佈景主題也是個選擇。

(*)"某個"一辭的說法這裡可能有爭議,Firefox在安全模式下,是停用所有而非單一的套件;在這情況下,只能觀察到停用所有套件下記憶體使用的差異。


有的擴充套件造成Firefox記憶體用量落差程度,會是所有因素之冠;除了設計上的缺失之外,擴充套件本身功能上的要求遠超過瀏覽器基本能力也是一個可能的因素。所以優先從調整擴充套件來降低記憶用量,是最單純且成效極佳的方法。

然而較麻煩的是,在目前並沒有工具程式或者是套件,能報告Firefox擴充套件各自使用記憶體的用量。如此一來在無法事先知道這個套件的記憶體用量的情況下,除了首次安裝新套件後就立即觀察外,個別停用是目前唯一可行的辦法。

Firefox1.5版以後有提供停用套件的功能 - 在所選擇的擴充套件位置上用滑鼠按右鍵,選擇"停用"後,該套件會顯示訊息,通知你在下次再啟動時此套件將會停用。 http://homepage13.seed.net.tw/web@3/tenki/General/Pics/Firefox/stop_ext_before.JPG

這裡以Google Safe Browsing擴充套件來做例子 - 事實上這個套件是極佳的降低記憶體示範,因為討論版已有人抱怨該版本套件極耗記憶體。此為已選停用,尚未重開啟時,請留意記憶體使用量。


在重啟動後,該套件顯示會呈現灰化;同時再去觀察記憶體用量有無差異;如果成效明顯,您就可考慮將它移除,或者是暫時保留它,待新版本確定改善記憶體使用問題後將它更新再重新啟用。 http://homepage13.seed.net.tw/web@3/tenki/General/Pics/Firefox/stop_ext_after.JPG

這是重啟動後,該套件停用下的記憶體使用量,您可以看出停用前後兩者相差非常的大。


Plugins(插件)

  • Plugins 可能導致當他們被使用時 Firefox耗用更多的記憶體。他們甚至直到Firefox關閉前都不會將記憶體釋放掉。
  • 確定您正使用著最新版本的每個Plugins是一個好主意。

這裡有一個簡單方法可查到已經安裝的plugins元件版本 - 在網址列打入about:plugins,就可列出所有plugins的資料。

http://homepage20.seed.net.tw/web@3/tenki/General/Pics/Firefox/about_plugins.jpg

about:plugins查詢plugins資料的功能,版本號碼有的會寫在標題上;有的則是寫在.dll檔案下方。

plugins 數量沒有像擴充套件那樣多,大致來說只有影片(WindowsMedia、QuickTime、RealMedia)、動畫(Flash)、文件(Office、Acrobat)、Java幾個種類。這裏面其實除了Flash以外,只要您用的版本夠新,通常比較不會碰到大量耗用記憶體的問題。

Flash所屬官方所提供的元件在Firefox上的記憶體耗用確實十分嚴重,雖然最新的版本(目前是8.0r24)已經改善了關閉網頁時不釋放記憶體的現象,但是每次播放Flash時載入大量元件,耗用的記憶體仍遠超過其他格式的plugins,就因為如此,有不少人選擇用套件在網頁中阻擋Flash檔案,或者乾脆自Windows解除安裝FlashPlayer。

(阻擋Flash檔案的套件可參考"FlashBlock"網站)

插件在Firefox1.5版並沒有停用的功能,它們也不像擴充套件能自動更新。除了等待更新版本、安裝阻擋套件或完全解除安裝原來程式之外,少數plugins有手動方法可停止使用(不必要的)元件;這裡舉出兩個例子:

  • <Adobe Reader>
    • 註:如果您是安裝7.0.5(Windows)或7.0.1(Linux)及更新版本的,就應該已解決了plugins啟動後記憶用量過大的問題,不需要參考手動停用的方法。
    • 手動的方法有兩個:
    • 1>
      • 找出Adobe Reader安裝程式的資料夾,例如"C:\Program Files\Adobe\Acrobat 6.0\Reader."。
      • 找出"plug_ins"資料夾,將其改名成"plug_ins_disabled",另外再建一個新的"plug_ins"空資料夾。
      • 從"plug_ins_disabled"資料夾複製:EWH32.api, printme.api, search.api至"plug_ins"資料夾。
    • 2>
      • 若正在執行Acrobat Reader,將其關閉。
      • 找出plugins所在的資料夾,例如"C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins"。
      • 新建"Optional"資料夾,例如"C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\Optional"。
      • 將所有plugins檔案,連同下面子資料夾搬移至"Optional"資料夾。
  • <Shockwave>
    • 關閉Firefox後,找出plugins資料夾例如"C:\Program Files\Mozilla Firefox\Plugins",將其中"np32dsw.dll"改名成"Xnp32dsw.dll"



下載記錄

  • 如果允許堆積下載記錄的話將會造成Firefox增加耗用記憶體進而使Firefox效能降低甚至停止回應。
  • 清除下載紀錄(在某些情況下您可能需要關閉 Firefox 並從profile文件夾刪除名為" downloads.rdf" 的檔案) 並且改變設定可迴避此問題:
  • "工具- > 選項- > 隱私- > 下載紀錄- > 何時可刪除下載管理員內的檔案紀錄", 選擇 "成功下載後" 。


通常每筆下載紀錄的大小不到1KB,不過對特定使用的習慣,例如常常一次下載大量的圖片,累積的記錄筆數短時間內就會大量增加,針對這類使用情況下,將下載記錄關閉,或者是隨時手動清除紀錄,就能避免啟動Firefox時載入太大的記錄檔。

http://homepage20.seed.net.tw/web@3/tenki/General/Pics/Firefox/downloads_setting.jpg

設定下載記錄的視窗畫面,注意要選擇"成功下載後"即清除檔案紀錄

這裡列出不同平台Firefox的profile位置

平台 檔案夾
Windows 9x/Me C:\Windows\Application Data\Mozilla\Firefox\Profiles\<Profile name>\
Windows 9x/Me, alternate C:\Windows\Profiles\<Windows login/user name>\Application Data\Mozilla\Firefox\Profiles\<Profile name>\
Windows NT 4.x C:\Winnt\Profiles\<Windows login/user name>\Application Data\Mozilla\Firefox\Profiles\<Profile name>\
Windows XP / 2000 C:\Documents and Settings\<Windows login/user name>\Application Data\Mozilla\Firefox\Profiles\<Profile name>\
Unix ~/.mozilla/firefox/<Profile name>/
Mac OS X ~/Library/Mozilla/Firefox/Profiles/<Profile name>/

~/Library/Application Support/Firefox/Profiles/<Profile name>/

http://homepage20.seed.net.tw/web@3/tenki/General/Pics/Firefox/downloads_rdf.JPG

downloads_rdf檔案的位置(Windows)

Firefox本身的下載管理員較不適合經常下載大量檔案的場合;針對此情況,建議將下載任務交由續傳軟體如Flashget或GetRight來進行,並配合"Flashgot"擴充套件來使用。


在設定檔中降低記憶用量的設置

  • 改變 about:config 中,以下的設定選項能對記憶消耗量發生效用,但也可能影響效能或者減損其功能性。



重新啟動Firefox

  • 如果您發現Firefox 的記憶用量在長期的開啟時繼續的增長, 您會想要考慮階段性地重新啟動Firefox 以讓記憶用量回復到合理的水平。

Memory leaks(記憶耗損)

  • 在某種程度上Firefox會發生記憶洩漏狀況 。這些記憶洩漏狀況肇因Firefox 不釋放不再使用的記憶體,。1.5.0.1 修復了幾個記憶洩漏問題。如果您尚未使用,您應該升級到這個版本。

Virtual memory(虛擬記憶體)

  • 一些Windos使用者會有Firefox 記憶用量問題,因為他們關閉了虛擬記憶體,或者設定了太小的分頁檔。

個人工具