深入瞭解 FireFox 十、編譯版、參數、雜項跟加速

以下將會分為幾個章節來探討這個瀏覽器:

一、常用的附加元件
二、少用的附加元件
三、Plug-in 外掛程式
四、搜尋引擎
五、GreasMonkey 增強網頁功能!
六、免安裝版與精簡 Firefox 來加速啟動
七、userChrome.js 功能的強化
八、userChrome.css & userContent.css 介面的修改
九、火狐的安全
十、編譯版、參數、雜項跟加速
十一、自製皮膚
十二、總結

十、編譯版、參數、優化

除了官方的 Firefox,也有其的它的個人編譯版存在;為何要重新編譯呢? 因為官方的版本為了顧及穩定性和相容性,所以,雖然有許多 CPU 支援新的指令集,但仍要為了顧及老舊電腦的使用而不利用這些指令集加速。

個人編譯版就沒這個問題了!可以完全發揮自己電腦所擁有的功能,根據不同的 CPU 指令集製作不同的版本,使 Firefox 能夠做到根據不同的平台而優化,這就是為什麼個人編譯的版本通常瀏覽速度都會較快速。
但在 3.5 之後,新的 TraceMonkey 讓 Firefox 的速度大幅提升,個人編譯的效果多少就不是那麼的明顯了…….

目前常見的個人編譯版有這三種:

tete009ayakawa綾川 Pigfoot

Tete009AyakawaPigfoot

在這邊,先解釋一下如何選擇要使用的版本的方法:

1. 各種編譯版內有區分針對不同 CPU 指令集去優化的版本;tete009 有分 SSE SSE2 兩種,pigfoot 則是用 P1、P2、P3 來區分,綾川 的只有 SSE2 一種,太過老舊的 CPU 就不能用了。

2. 再來我們要找出 CPU 支持哪些指令集,可用 CPU-Z 檢查。另一種方法則是在這個 BLOG 把愛放生提供的 Pigfoot’s Firefox 輔助程式 ,雖說設計上是給 Pigfoot 用的,但仍可檢查出可支援的指令集。

Pigfoot CPU
3. 根據支持的指令集選擇要下載的版本,下載後為主程式檔,開啟後會直接讀取已安裝的 Firefox 的設定;另外綾川版是需要安裝 VC++2008 或者 VC++2008SP1 才能正常執行的,也可以在安裝 VC++2008  或 VC++2008 sp1 的電腦上提取出vcomp90.dll 和  Microsoft.VC90.OpenMP.manifest 兩個檔案,放在 firefox.exe 的同一目錄下即可。

A. tete009 對於如何選用哪個版本可參考 tete009官方解釋

(1) 用 SSE2 編譯版的 Firefox 在以下幾種 CPU 會運行的更快速

Intel Core i3, i5, i7
Intel Core2 Duo, Core2 Solo, Core2 Quad
Intel Pentium4
Intel Celeron based on Pentium4, Core2 Duo(Solo, Quad)
AMD Athlon II (X2, X3, X4)
AMD Phenom or Phenom II (X2, X3, X4)

如果你的 CPU 是這邊列出的其中之一,那你應該使用 SSE2 編譯版

(2) 要是用了 SSE2 編譯版的 Firefox 的話,在以下幾種CPU會運行的更緩慢

Intel Pentium M
Intel Core Duo, Core Solo
Intel Celeron based on Pentium M and CoreSolo
AMD Sempron
AMD Athlon (X2)
AMD Athlon 64 (X2)

如果你的 CPU 是這邊列出的其中之一,那你應該使用 SSE 編譯版

B. 至於 Pigfoot,可利用把愛放生這邊的 Pigfoot’s Firefox 輔助程式 來快速得知,參考 Pigfoot 官方的介紹:

P1 支援至 MMX 指令集 for Generic CPU
P2 支援至 SSE 指令集 for Athlon XP、 Duron 1.1 GHz+、 Pentium III、 Celeron 500+
P3 支援至 SSE2 指令集 for AMD Athlon 64、Sempron、Opteron processor family、Intel Pentium 4/D/M、Intel Xeon、Intel Atom、Intel Core processor family,and other modern CPU

4. tete009 和 Pigfoot 可根據指令集下載不同的 tmemutil.dll 文件。替換在程序目錄下的文件
5. 只有 tete009 可使用 Module Binder 程式加速 Firefox 的開啟速度;放在程式資料夾內執行即可,以後更新 Firefox 版本後都要再進行一次。

版本比較:

tete009 的版本根據不同的 CPU 指令集重寫了 tmemutil.dll,即記憶體管理的dll文件,使效率大為提高,且 pigfoot 也加入 tete 優化的 DLL 套件;這兩個版本均可根據你的電腦選擇更適合您電腦的 DLL 套件

tete009 使用 VC 2005 SP1 PGO方法來編譯,有別於官方使用的VC 2003編譯平台。
而綾川的版本也有用到 tete009 的部分技術,並且追求更新的編譯器,使用-VS2009 SP1編譯。

tete009 使用 openmp 技術,讓部分繪圖工作並行化來增加繪圖效和加快內嵌ogg多媒體速度。

而 Module Binder 能縮短 tete009的 Firefox的啟動時間。

資料來源:
Jhonney的專欄
把愛放生:Pigfoot’s Firefox Multiple

接下來講些備註和雜項

1. SpeedyFox 加速 Firefox 速度的軟體

重灌狂人也有介紹
據說真的很有效!!
但他的功能只是壓縮和清除歷史紀錄、網頁站存跟 cookie 而已。
若會手動操作的人就不需要它了~

SpeedyFox

2. 修改火狐的圖示

可到  C:\Program Files\Mozilla Firefox\chrome\icons\default 內,把你要用的圖示 .ico 檔命名為 main-window.ico,放在 default 資料夾底下及可。

3. 智慧型書籤

Firefox 中有個很好用的功能"智慧型書籤",能創建一個書籤資料夾並自動篩選出條件符合的書籤 (預設的有最常瀏覽、最近加入的書籤等等)。

而我們也可以自行創建符合我們所需的智慧型書籤,有兩種方法-

使用書籤搜尋功能建立智慧書籤

1. 從左側列中點選慾搜尋的範圍。
2. 使用"書籤-管理書籤-收藏庫"中右上角的搜尋框搜尋你要的關鍵字(網頁名稱、網址、標籤、敘述或關鍵字)。
3. 指定要搜尋"書籤"還是"瀏覽紀錄"。
4. 按下右邊的儲存,輸入智慧書籤的名稱後即完成。

Bookmark

利用place網址語法建立智慧書籤

1. 右鍵-新增書籤
2. 名稱"輸入智慧書籤的名稱
3. 在"網址"欄位輸入place網址語法,如圖中的"place:queryType=1&sort=1&terms=firefx",指的是篩選出含有"firefox"的書籤,並依瀏覽次數排列。
4. 重新啟動 Firefox

Bookmark

這是常用的幾個place網址語法,更詳細的資料,請參考這個Places query syntax

Query Parameter
folder(指定要搜尋的範圍) BOOKMARKS_MENU (書籤功能表)
TOOLBAR (書籤工具列)
UNFILED_BOOKMARKS (未排序書籤)
term (指定關鍵字,搜尋網頁名稱或標籤中是否有相符者) 可自由填入任意關鍵字,使用空白作多個關件字的區隔ex:"firefxo 瀏覽器 火狐"
uri(指定關倩自,搜尋網頁網址中是否有相符者) 可自由填入任意關鍵字,其餘同上。
sort(指定搜尋結果的排列順序) 1 (按照網頁名稱排序,A-Z)
4 (按照瀏覽時間排列,從最近的開始)
5 (按照網址排序,A-Z)
8 (按照瀏覽次數排序,從最常瀏覽的開始)
12 (按照加入時間排序,從最近的開始)
17 (按照標籤排序,A-Z)
maxResults(限制顯示的書籤數目) 0 (所有符合的書籤都會被顯示)
可自由填入任何數字
queryType(指定要搜尋的範圍是書籤或瀏覽記錄或兩者;如果已經先指 定folder參數,可以略過這個參數) 0 (瀏覽記錄)
1 (書籤)
2 (瀏覽記錄和書籤)

這是預設中常用的幾個智慧書籤

最常瀏覽的網頁place:queryType=0&sort=8&maxResults=10

最近加入的書籤place:folder=BOOKMARKS_MENU&folder=UNFILED_BOOKMARKS&folder=TOOLBAR&queryType=1&sort=12&excludeItemIfParentHasAnnotation=livemark%2FfeedURI&maxResults=10&excludeQueries=1

最近新增的標籤place:type=6&sort=14&maxResults=10

未排序的書籤(Firefox 3.6.3版)place:folder=UNFILED_BOOKMARKS

資料來源:Mulberry的時間 事件簿 Firefox書籤 整理術:智慧書籤篇

4. 捷徑參數

其實不只捷徑,在開始-執行中的指令也可以。
用法:對著捷徑,右鍵-內容,在目標的"後面空一格,加入參數 。ex:“C:\Program Files\Mozilla Firefox\firefox.exe" -ProfileManager -no-remote
主要有三個參數可以用:

[ -safe-mode]
[ -no-remote]
[ -ProfileManager]

以下是各參數效果:

安全模式[ -safe-mode]

當火狐出了問題,開啟不了或是想要檢查是哪裡有問題而用的模式,包含可選擇是否停用附加元件、重設工具列、刪除備份以外的書前、重設設定回預設值等。

安全模式

設定檔管理員[ -ProfileManager]

直接加上[ -ProfileManager]開啟的 Firefox 會先開啟設定檔管理員,再讓你去選擇要用哪組設定檔開啟Firefox,此參數也可以用[ -p]代替;若現在還不知道什麼是設定檔 profile 的話,可以馬上來這裡看看!

我們可以同時使用各種版本的 Firefox 卻開啟同一組設定;同樣的,也可以只安裝一個 Firefox 卻使用多組不同的設定!

在它後面加上指定profile的位置,讓它自動開啟你所指定的 profile [-ProfileManager D:\XXX\profile],把這組profile設定到本機磁碟機 C 以外,這樣以後重灌就比較不怕丟失資料了!

設定檔管理員

多開[ -no-remote]

這個參數要和[ -ProfileManager]搭配,可同時執行複數的設定檔,效果就像是多開一樣。

目前使用的參數是[-P -no-remote],可以開啟多重 Firefox 及多個 Profile,這樣需要做測試時可另外開啟全新設定的 Firefox 而不用去修改目前工作中的!
捷徑參數

5. 滾輪行數

firefox預設轉一下中鍵的只有滑動6行,要讓它多捲一點可以照以下設定:

1. 開啟 firefox,在網址列輸入:about:config。(記得發誓你會小心…..)
2. 篩選器輸入:mousewheel.withnokey.sysnumlines,按兩下把值變成 false。
3. 在篩選器輸入:mousewheel.withnokey.numlines,按兩下填上滑鼠滾動的行數。

我填上 12,讓他一次滾動12行,移動距離跟 IE 下滾6行差不多。可依使用習慣調整。
滾輪速度

6. 自動釋放記憶體

讓 Firefox 在縮到最小時釋放所佔用的記憶體,但如此修改會造成 CPU 佔用增加,請自行取捨。

1. 開啟 FireFox,在網址列輸入 about:config,會跳出設定設選項。
2. 參數分字串、整數、真假(Boolean)值,先在搜尋列尋找 config.trim_on_minimize 這參數。
3. 若找不到 config.trim_on_minimize 參數,則於「個人設定名稱」的空白處,點按滑鼠右鍵,選擇「新增」→「真假值」。
4. 於「輸入設定名稱」處,輸入 config.trim_on_minimize
5. 其值則選擇「True」。
6. 修改完成後,關閉 FireFox 再重新開啟 Firefox 即可生效使用。

自動釋放記憶體
另外,香腸炒魷魚則是介紹這兩款附加元件:Boss Key 0.2.0 ,算是把我上面所說的設定用附加元件來達成;而這個元件:Memory Fox 則是更加的把包含間隔時間釋放、閒置分頁釋放、切換分頁釋放等選項實作出來。

以我個人而言,會用到釋放記憶體是因為使用的電腦實在太爛,開 Firefox 再打資料就不斷的 Lag ,所以才將火狐縮到最小讓記憶體釋放掉來增加工作效率。至於現在記憶體如流水的時代,真的需要為那記憶體來增加CPU的計算和網路重新下載的速度嗎?就看個人的選擇了。

7. Firefox 一些設定

工具-選項中,因為下載的狀態已經會出現在狀態列中,所以我把“下載時顯示下載視窗"取消,另外也勾選"每次都詢問我要下載到何處";內容-啟用 java script 進階,通通取消消 (解除某些網頁的右鍵鎖);字型-進階,最小字型大小設為10,讓某些論壇喜歡玩隱藏字體的自己顯現。

8. 加速設定:

有些人認為在 about:config 裡可以進行一些設定讓火狐速度更快,但官方設定一定有它的道理!這邊列出我覺得可能有點效的資料(Firefox3.0),資料有點久遠且無法保證其效果和穩定度~!

以下轉載自 IT 學習者

Firefox 加速技巧
【 來源:網路 作者:RobyLiang 更新時間:2007-06-26 】

讓我們暫且先把這些複雜的優化操作變的簡單一點,然後再來親自感覺一下這些已經在網路上流傳了很久的提速技巧吧。下面的操作我們都在 about:config 裡進行。在 Firefox 的地址欄中輸入 about:config,讓我們開始提速吧。

* network.http.pipelining
在 Filter 中輸入 network.http.pipelining,雙擊賦值為 true,默認為 false。如果沒有找到這個鍵值,可以右鍵新建一個 Boolean,把她賦值為 true 就 OK 了。
還是像我在從前解釋過的那樣,激活這個鍵值之後,Pipelining同時發出成倍數的連接請求,從而達到提升連接速度的效果。網路上的大多數網站都是基於 HTTP 協議,而 HTTP 1.1可以支持多線程的連接請求,通過這個操作可以減少Firefox載入網頁的時間。不過並不是所有網頁所在的伺服器都支持這種操作,所以當你修改鍵值之後卻看不到一點實際效果的時候,請不要對我破口大罵。

* network.http.pipelining.maxrequests
在 Filter 中輸入 network.http.pipelining.maxrequests,雙擊並賦值為 8,默認鍵值為 4。

* network.http.proxy.pipelining
在 Filter 中輸入 network.http.proxy.pipelining,雙擊並賦值為 true。
這兩條優化的道理同上,這裡就不再多解釋了。

* content.interrupt.parsing
右鍵新建 Boolean 值,鍵名為 content.interrupt.parsing,賦值 true。
默認這個鍵值並不存在。我們激活這個鍵值之後,當目標網頁載入時,Firefox會根據一定頻率打斷解析的過程,不斷的向用戶反饋她所收集到的網頁信息,有點像流媒體的意思。這時的 Firefox很聰明,不會一根筋的一直鑽牛角。在下面的內容中我還會具體講一下這個鍵值的魅力所在。

* content.max.tokenizing.time
右鍵新建 Integer 值,鍵名為 content.max.tokenizing.time,賦值 2250000。
這個鍵值的作用其實就是指定一個循環事件的處理週期,這裡的單位是微秒,要是我沒有算錯的話。理論上當我們將這個值取的越小,網頁就會從視覺上載入的越流暢,因為Firefox會在很短的單位時間裡反饋回解析到的網頁信息。可是這樣無疑延遲了網頁整體載入的時間,所以在這裡我們不妨將這個週期取的大一些,理論上可以加速網頁的載入。

* content.notify.interval
右鍵新建 Integer 值,鍵名為 content.notify.interval,賦值 750000。
載入一個網頁其實也是一門很大的學問。讓我們來放一個慢動作,我們姑且先把在終端第一次收到的網頁信息很不專業的叫做預載入頁面吧,這個頁面有可能是不完整的圖片或者文字,或者別的媒體文件。從我們第一次向遠端主機發出連接請求到我們在終端收到這個預載入頁面花費的時間,就是這裡我們要定義的鍵值。理論上當我們將這個時間設置的很低時,肯定會更快的拿到所謂的預載入頁面,可這是一種殺雞取卵的做法,這樣無形中反而增加了我們整體頁面的載入時間。按照官方的說法,低於 100,000 將會降低 Firefox 的性能,那好吧,那我們把她彪到 750000 吧。

* content.notify.ontimer
右鍵新建 Boolean 值,鍵名為 content.notify.ontimer,賦值 true。
為了使我們上面設置的 750000 微秒生效,還需要把這個鍵值激活。只有這兩個鍵值配合,才會起作用。

* content.notify.backoffcount
右鍵新建 Integer 值,鍵名為 content.notify.backoffcount,賦值 5。
這個鍵值控制Firefox的內置計數器在歸零之前載入頁面返回的次數。我們將目標網頁分成好多個部分進行下載,每下載完一個部分,計數器歸零一次。-1 就是沒有限制,值為 0時這項功能被禁用。這裡我們將她設置成5,當返回的次數達到五次而這部分網頁還沒有完全下載完時,那麼剩下的沒有下載完的網頁內容將不會再按照我們預告設置的週期,像之前的五次那樣一點一點的搬運回來,而是會一次性的下載完。也就是說在這個部分的網頁下載過程中,Firefox 一共向我們反饋了 6 次信息,前5次的時間間隔是我們在上面的鍵值中設置的週期 2250000 微秒,而第6次也就是最後一次則沒有時間限制,什麼時候把剩下的下完了,什麼時候反饋回來。
只有當我們在上面提到的 content.notify.ontimer 鍵值為 true 的時候,這裡的設置才會生效。

* content.switch.threshold
右鍵新建 Integer 值,鍵名為 content.switch.threshold ,賦值 750000,也就是四分之三秒。
在前面我們提到了一個鍵值 content.interrupt.parsing,通過激活她實際上我們可以在載入頁面的過程中跟Firefox產生互動,畢竟我們每一個人的心裡都充滿了愛。把 content.interrupt.parsing 激活後當頁面載入時Firefox會有兩種操作模式:高頻和低頻中斷模式。使用高頻模式時,網頁回饋的頻率也很高,我們坐在顯示器前看到的網頁載入過程也會更加的平滑。低頻時網頁回饋的頻率相對比較低,可是這時反而加快了網頁載入的時間。當我們移動鼠標或者觸擊鍵盤時,高頻模式被激活。在經過某一段時間我們沒有碰鼠標和鍵盤,程序沒有接到鼠標和鍵盤發出的任何指令時,Firefox 就會自動進入低頻模式工作,而這所謂的某一段時間,就是我們這裡要指定的值。

* nglayout.initialpaint.delay
右鍵新建 Integer 值,鍵名為 nglayout.initialpaint.delay,賦值 0。
這裡實際上延遲了整個網頁的顯示速度,但是因為用戶更喜歡在整個網頁完全截入之前就開始閱讀網頁 (就像流媒體那樣),所以在這裡可以把值調為零,加速用戶閱讀網頁的速度,有時候閱讀速度和載入速度並不是成正比的。

這篇主要是些備忘和不知如何歸類的資料,希望對大家有所幫助!