跳到主要內容

Firefox 18的離子猴,及社群加速版大PK

自從Firefox 4之後的大變革之後,從Firefox 5開始Mozilla開始不遺餘力地調校JavaScript性能和記憶體使用量。雖然因為長久發展下來不能馬上直追Google Chrome的性能,不過卻每每都有所成長。以往我都參考虫二兄的測試,做為選擇加速版本的資訊。不過,從17版之後他就沒有測試了。而不曉得是不是這次測試的硬體還是當年Core Duo年代的產品,做出來的效果是和預期的不太一樣!?


加速版會快上多少?
老實說我自己用慣加速版本,直覺是加速版一定會比較快,加上以往自編譯社群版本原本確實速度比官方版本快上不少,至少14個月前測試Firefox 8確實是如此,但現在呢?

同時這次不再只使用Peacekeeper進行測試。由於Firefox 18導入的IonMonkey強調的是增進JavaScript的性能,我們同時測試了SunSpider 0.91/V8 Suite v7/Kraken 1.1三大JavaScript網站進行測試,分別是Apple/Google/Mozilla三大瀏覽器龍頭廠商所製作的測試網站。這次的測試相當地著重JavaScript的項目。

測試環境是2008年出廠的Aspire 5920G。搭載Core 2 Duo T5450和2GB DDR2 RAM。作業系統是64位元Windows 7企業版SP1,防毒軟體則是Avast免費版本,因此,有半數以上的版本會因為Avast的資料庫裡面認為其使用數不多,在第一次執行時會收到流行度較低的警示,後來確認後再執行就不受影響。

另外,同門師兄SeaMonkey 2.15也同樣地導入IonMonkey。這次也一併納入進行比較。


受測社群版資訊

Firefox (除官方版本外以字母順排序,下SeaMonkey同)
SeaMonkey

Firefox大軍各有千秋
我們發現,三家JavaScript網站測試出來的結果不太一樣。Mozilla的新聞稿自然是拿自家的KarKen進行測試的結果。最早出現的SunSpider BenchMark和其他兩個的差異性最大,往往Firefox 17和使用Gecko 15核心引擎的Pale Moon 15.3.2反而比18還要快,而且官方版本也到了前段班,把不少社群版本甩在後面。

單位ms,越低性能越好

(分數越高越好)

單位ms,越低性能越好

 (分數越高性能越好)

值得我們留意的是代表整體效能的分數,從17到18普遍反而不昇反降。兩個版本才編譯一次的PCX沒有編Firefox 18,不然個人還蠻期待會有什麼樣的成果。以Firefox 18來說,Lawliet拿下了1124,成為其中唯一17到18有進步、並且維持在1100以上的社群版。而得分最高的是PCX Firefox 17.0.1。


SeaMonkey有換心有進步
SeaMonkey這次我找回當年讓我驚豔的WitchFive編譯的2.7.2版。SeaMonkey 2.7.x採用等同於Firefox 10的Gecko 10引擎。從Firefox 10到18已有一年多餘,期間JavaScript JIT編譯器已經演進到今日的IonMonkey。而目前唯一有跟進到使用IonMonkey的SeaMonkey 2.15只有Htguard。我們來看看結果。

單位ms,越低性能越好

 (分數越高越好)

單位ms,越低性能越好

 (分數越高越好)

以JavaScript的性能來說,WitchFive的SeaMonkey輸得合情合理,不過仔細看竟然仍然在KarKen跑贏Firefox 17,SunSpider更是打趴所有對手。更不要說PeaceKeeper的分數更是在Firefox社群版本的高分區塊,其餘的SeaMonkey普遍在800~840區間,與官方版Firefox 18得到951分有一段差距。WitchFive的社群版是唯一沒有動用處理器加速,偏重倚靠PGO/PGU的調校者。前述各Firefox版本都有採用SSE2的處理器加速設定,整體效果也只能說是並駕齊驅。有沒有願意試試看的呢?


有換編譯器有差?
這是我長久以來心中的疑問。從テテ一直沒有換過的Visual C++ 2005 (VC8),到之前的Visual C++2010(VC10),現在多數的編譯者已經換到Visual C++ 2012(VC11)。那麼,只是編譯器的差異會有多少影響呢?同樣由WitchFive編譯無加速指令、無PGO最佳化,僅有編譯器上的做了測試結果如下:


這也難怪多數編譯者都希望換用VC11做為編譯工具。目前Htguard、PCX、WitchFive和官方版本採用VC10,テテ使用VC8,綾川、Moon Child(Pale Moon)則是使用VC11。如果有自行編譯的意願上述測試可以提供參考,不過假若要進行PGO最佳化的話,一定要用完整版本的Visual C++,Express版是不支援的。

Update: 如果在PGO最佳化的設定下,由VC11編譯的Firefox反而會比VC10編譯出來的慢15%~20%! 所以如果沒有心力搞PGO的部分的話,也許可以試試VC11進行編譯;反之則應該考慮採用VC10。謝謝Lawliet的指正。

再補充一點,Lawlietfox 17採用VC11編譯,而18則是以VC10編譯。這或許是17版分數不如我預期的真正因素。


主流大亂鬥
這次找來Windows主流的幾款瀏覽器,分別是即將出現正式版本的IE10 Release Preview for Windows 7、Opera 12.12、Google Chrome 23.0.1271.97,以及停止支援的Safari for Windows最後一版5.1.7。好啦,最後一項是我私心加上去的,因為接下來要在Apple device才有Safari能夠使用了,畢竟有各項考量和整合的問題倒是真的。

單位ms,越低性能越好

(分數越高越好)

單位ms,越低性能越好

(分數越高越好)

IE10在SunSpider得到第一,Chrome和Firefox 18分別在自家的V8和Karken獲勝。在PeaceKeeper上除Chrome和Opera分數高出許多之外,Firefox 18和IE10差不多。Safari 5.1.7已早是10個月前的瀏覽器了,輸乃意料之事。不過Opera在JavaScript各項比試上和Safari的結果一同掉車尾,看來最需要強化JavaScript性能的,恐怕現在變成Opera的當務之急。

Firefox 18已經不是當年那個性能吊車尾的傢伙了。接著,就看什麼時候會出現Firefox for iOS了吧? 希望iOS裝置上也能有Firefox的一天。


結論
Gecko 18引擎某種程度上確實是對新的JavaScript項目進行了調校。這也是為什麼在SunSpider上還是輸給未導入IonMonkey的Gecko 17引擎之Firefox 17和SeaMonkey 2.14,而在Karken和V8上則是勝出。

用處理器的指令加速的時代已經過去了。雖然普遍都對SSE2加速指令的處理器進行最佳化,但黑馬WitchFive當年的SeaMonkey 2.7.2今日在新版的PeaceKeeper仍舊是亮眼,當時可是樂勝各家的Firefox 10呢! PGO能調校的空間還是有的,或許可以朝這個方向進行調校看看?


Our Choice Lawlietfox 18.0
就Firefox 17社群版最佳的選擇是PCX編譯版,不過考量到奇數版本才編譯的政策,Lawlietfox 18性能相近,也是各18.0社群版性能沒有官方設定的緣故而性能下降。加上更新頻率高,ESR也有支援,同時也編譯32位元和64位元,選擇性最多。這都是我推薦的原因。

而テテPrivate build的調校則是PCX和Lawlietfox參考的源頭,PCX版編譯者也說他認為如果是要求穩定,應該採用テテ的社群版本。而且唯一由VC8編譯,應可在Windows 2000上執行。如果其他版本使用上出現奇怪的問題,或是要使用內建的可攜功能,那麼テテPrivate build也值得選用。

WitchFive的SeaMonkey 2.7.2則是SeaMonkey加速版的不二選擇。而64位元只有Htguard一個選擇。就我自己一度長期使用Thunderbird Portable的理解,我會建議以SeaMonkey Portable取代,這樣還可以免除連結要設定開啟的瀏覽器的問題,只是SeaMonkey 2.7尚未內建SeaMonkey Sync,無法與Firefox共通瀏覽器設定就是。

留言

  1. 其實我從FX10之後,因為一些問題還有懶惰的關係
    就開始使用Htguard的自動BetterPGO腳本
    但從17-5開始,就回來繼續使用手動的BetterPGO
    幾個小時前也完成FX19 x64版本的手動BetterPGO編譯
    目前正在測試穩定性

    我覺得我現在的版本性能沒有以前的高
    尤其是tete009,它只用VC8,就能編譯出性能這麼高的版本
    是讓我感到最不可思議的!或許跟他的 tmemutil 模組有關係
    而Htguard也同樣,他使用的是他自己的patch跟自動BetterPGO腳本
    並應用了所有的patches,這裡的問題是
    就我長久使用他patches的經驗雖然性能提高
    但穩定有所欠缺,所以我從17-5開始
    放棄一些底層library,例如libpng, ibjpeg-turbo, 還有放棄浮點化運算
    而根據PCX的說法,他的PATCHES例如tete009跟ot的,有一些相容性上的問題
    打入的時候,你會發現patching的source code有重複到
    而我接下來會持續加強我自己的手動BetterPGO列表

    另外WitchFive的VC10對VC11測試有幾點我要補充一下
    根據我還有Htguard跟pcx的測試,VC11對於無進行pgo優化的Firefox
    有顯著的性能提昇,但是只要進行PGO編譯
    性能上VC11會比VC10要慢個15~20%的性能
    我之前有個FX17就是使用VC11 + 手動BetterPGO編譯
    整個性能非常悲劇,但是我忘了是哪個版本,可能是17-5
    而且我在更早之前編譯過一個沒有公開的版本
    無pgo編譯的FX17,穩定性上有一些問題
    總是會在意些地方發生崩潰,而VC10編譯沒有問題
    所以後來我只在FX10, FX17 esr上使用VC11

    回覆刪除
    回覆
    1. OK。SeaMonkey據我的了解和Firefox不太一樣的是官方預設是沒有做PGO的優化,所以基於這個部分我有再做補充說明。謝謝!

      不過基於上述的說明,怎麼會考慮在ESR上使用VC11!?

      刪除
  2. 英文字很可愛,但是閱讀起來很痛苦。

    回覆刪除
  3. ESR的VC11主要是當做我的測試通道
    雖然穩定性有疑慮,但是那些還是在比較極端的環境下才會反映出來
    我的主線版本,依舊會維持VC10,來保證性能
    使用VC11還有一個優點,就是編譯更快速
    在link的時候,VC10只有單線程
    VC11可以多線程,這節省了我很多建構的時間

    回覆刪除
    回覆
    1. 那麼,理論上我拿firefox-17.0.1-8-win32-lawlietfox-sse2.7z和firefox-17.0.2-1-win32-lawlietfox-sse2.7z可以實測出你說的情況嗎? 如果能讓我拿來做說明會很好。

      刪除
  4. ESR版沒有手動BetterPGO,基準點就不同
    可以拿17-1最早用的VC11,跟後來VC10的17.0.1-2做比較
    這兩個版本都是自動BetterPGO,跟打上同樣的patches
    只差在編譯器不同

    過時版本在我的主頁上有保留
    https://code.google.com/p/lawlietfox/downloads/list?can=1&q=FIREFOX-17&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount

    回覆刪除
  5. 差距不夠明顯,我比較會推官方版本

    回覆刪除

張貼留言

這個網誌中的熱門文章

Windows 10試用:中文輸入法跟上微軟的車尾燈了嗎?

我們提到Windows 10有很多實用的新功能,也讓Windows完全回歸以桌面為主軸的作業模式。不過基本上除了Windows本身要好用之外,Windows 8中文使用者最沉重的問題莫過於輸入法這件事。這個問題,Windows 10也繼承了Windows 8的架構,完全以從XP開始支援的TSF(Text Service Framwork)架構輸入法為主,而傳統的輸入法需要大幅度調整才能轉換成這種架構。 其實新架構和以往架構對使用者最大的差別,一是新的才能支援新的Metro app,二是切換的某些重要快速鍵大不相同。其實還有第三個,那就是因應對觸控操作加強,輸入法除了所有程式統一一種設定,還會自行判斷在那個輸入框下該只能輸入英數字,還是直接提供中文輸入模式。這些種種的不同,到Windows 10上會不會繼續成為大家裹足不前的因素呢?

減肥版的Windows 7:就叫Thin PC!

瘦客戶端(Thin client)其實不是什麼新玩意。於是輕量化的Windows 7作業系統WinTPC因應而生。

WinSXS的官方解! 實測能奉還多少空間出來?

話說最近幫老家的Windows 7排除問題發現在去年年底微軟釋出一個 針對WinSXS會日漸肥大的清理修正檔案 。Windows 7吃下後就可以用「磁碟清理」去減少所占用的空間。據微軟的說法,放在WinSXS資料夾裡的就是系統更新元件時所需要的檔案。在這個磁碟清理程式的外掛釋出之前,是只有 清除Service Pack檔案的官方解 。 據微軟的說法,Windows 7的這個套件的功能在Windows 8之後已經內建。而事隔一年之後( Windows 8在2012年10月29日正式發佈 )才推出這個給Windows 7用,感覺上有一點遲到,不過至少是出現了。可惜的是還在使用Vista的使用者並沒有這個福利,沒辦法,這完全得看微軟的心情…畢竟除了不受歡迎之外,目前Vista也已經過了 主流支援 快兩年,正常來說微軟不會提供對應的功能性加強產品。 我們很好奇這個套件能讓系統刪掉多少不必要的東西。於是用虛擬機安裝乾淨的系統來測試,並且與其他新舊Windows系統比較。為了講求儘可能的公平,規劃了下列流程: