跳到主要內容

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因應而生。

Windows 10限定! Office 2016預覽版試用

Windows 10 Technical Preview推出不久,微軟也確定了下一代Office 定名為Office 2016 。隨後也推出預覽版,這次不同於以往,除了Windows 10 build 9926限定,也只有Word, Excel, Powerpoint三個重要成員。真要算的話,還有已經推出並且開放免費的 OneNote筆記軟體 已經有Windows 10的預覽版本並直接內建在系統裡,除此之外好像還沒有其他成員app化。 App化的Microsoft Office已經有提供給iOS和Android等行動裝置的 Office Mobile 了,對照行動版本,app版的Outlook 2016預覽版還沒出現。不過從Windows 8開始就有「郵件、行事曆與聯絡人」這三個app,會不會另外再出付費版本的Outlook app仍有待觀察。 還有一點,如果系統裡面已經有舊的Office,不用擔心會衝突,只是需要指定預設由桌面的舊版Office或是Office app預覽版開放即可。