Mozilla面對競爭壓力,開始對Firefox做三個不同方向的大改變。
第一是新的JavaScript引擎,可以讓網頁版程式速度增快至少30%。第二是Windows版的新圖像加速引擎,可以靠著新硬體加速器幫忙處理圖像和文字。第三是一個程式開發工具來打造新的Firefox附加套件系統。
Mozilla自從五年前發表Firefox後,在對抗老大哥IE上有明顯的斬獲,不過一開始大部分的時間微軟的瀏覽器都僅稍微衰退。而現在Google Chrome開始快速開發,蘋果在Windows和Mac都積極行銷自家的Safari,Opera開發速度變快,而更重要的是,微軟正顯示出來他們想要重新打造IE的興趣。
根據Net Applications調查,Firefox在去年十一月全球瀏覽器市佔率是24.7%,而週一發表的二月份報告顯示稍微下滑到24.2%。而同一時間,Chrome從3.9%成長到5.6%。
Mozilla在去年對Firefox做了許多顯著的變更,在3.5和3.6版中加入了許多新功能,並且在開發一個名為「Lorentz」的更新設計,來減少來自如Flash播放器這種外掛造成的當掉。現在新一代的點子雖然還僅是很粗略的型態,但是已經準備開始測試了。
JavaScript大翻修
將JavaScript引擎加速到新境界,Mozilla功不可沒,而他們的TraceMonkey引擎在過去一直很有競爭力。但是它已經被Chrome V8引擎和Safari Nitro引擎超越,
而在Opera 10.5 beta中的Carakan引擎則有機會追上甚至超越所有的競爭者。
這些之所以重要是因為JavaScript在瀏覽器處理上佔越來越重要地位。許多複雜漂亮的使用者介面大量的使用JavaScript。而新的標準讓瀏覽器也可以在背景處理任務,為更進階的網頁和網路程式開了一扇門。
所以Mozilla有個新計劃名為JaegerMonkey。
Mozilla工程師認為,可以將某些常用任務轉換成處理器原生語言編譯,而非用高階JavaScript架構直譯,藉此可加速Firefox的 JavaScript引擎處理程式碼。不過JaegerMonkey程式開發者David Anderson在週五一篇部落格文章直指問題核心表示:
「我們發現,當追蹤成功時,我們會比一般的方式快,但是當追蹤失敗時,我們必須要回到過去的直譯器上。而那時候你的JavaScript跑來的水準大約是在2007到2008年左右(即在Firefox 3.5、Safari 4、Chrome之前)。我們無法接受,而我們需要去解決這個問題」Anderson說。
JaegerMonkey是設計來在兩種情況下都有最好表現。Anderson問到「為什麼我們不能夠追蹤並得到超快表現,而當追蹤失敗時,回到老方法時一樣很快?我們的新計劃,JaegerMonkey(或JagerMonkey)就有把這個考量放在裡面...我們才剛剛開始了,而結果很有希望。」
根據JagerMonkey程式人員David Mandelin的描述,Mozilla決定在Nitro JavaScript引擎上打造這個新元件。
Mandellin在部落格中說「我們決定匯入來自蘋果開源碼Nitro JavaScript JIT組合語言(just-in-time compiler)。我們之前就知道它很簡單而且快速(我自己用它來編譯正規表達式顯示它真的很快),它是開源碼,而且它是設計良好的C++,所以它很適合。」
使用SunSpider JavaScript來測試顯示JaegerMonkey的確有顯著較快。在融入Nitro,但尚未最佳化之前,Anderson的測試顯示在32位元 x86系統上速度增加30%,而64位元x86系統上則是加速45%。
不過JaegerMonkey離大量beta測試還有一段距離。原始碼已經可下載,但是尚未內建在Mozilla每日更新「Minefield」版Firefox原型裡。
Direct2D加速
另外一個Mozilla顯著改變是支援微軟的Direct2D技術來加速文字和圖像顯示,現在已經加進每日更新版裡。這代表會有更大量的實際測試,即便它還沒進入到官方beta版中。
Direct2D和相關的DirectWrite介面使用到電腦的繪圖處理晶片來處理在Windows Vista和Windows 7中許多顯示任務。其中一項改變是字體反鋸齒,可以在兩個維度上圓滑曲線來改掉字型邊緣的鋸齒、奇怪形狀,而之前的技術僅能運作在一個維度上。
Mozilla的Asa Botzier在週六的文章中描述他的結果說「當DirectWrite開啟時,字型看起真的很棒」。
不是很多人知道支援Direct2D正是正在開發中的IE 9其中一項新功能。在2009年微軟IE 9展示上,這個瀏覽器的原型在某些圖像任務如在線上地圖移動中,展示了巨大的效能改進。
Mozilla的目標是在Direct2D支援部分擊敗微軟,但是這個技術改變是很顯著的。
「有些套件如Stylish和AdBlock Plus可能會破壞這個新功能」Dotzler警告。而Direct2D預設並未開啟,Dotzler有提供使用說明給那些急著要使用的人。
JetPack SDK
另外一個Firefox改變是新的附加套件基礎名為Jetpack。Mozilla希望新的系統可以讓開發者更容易使用,而Firefox使用者比較容易管理,比如說安裝或是更新套件後不用重新啟動。
不過目前JetPack原型依然需要一些程式技巧來使用。而現在Mozilla準備透過釋出SDK來降低困難度。
Jetpack團隊成員Atul Varma在週六的郵寄信件宣布說「我們已經是出了第一版的Jetpack SDK 0.1發表候選(release candidate),但是它還十分粗略」
「現在這個SDK是給熟悉使用命令列的人,目前這個開發工具只能這樣使用。我們也在開發網頁版的開發環境名為FlightDeck,會讓整合和建造Firefox套件更為容易...但是目前尚未準備好。」Varma說。
JetPack在概念上很類似Chrome的網頁技術延伸套件系統,但是Chrome的套件系統才剛在Windows上正式釋出,而Mac和Linux上都僅是beta而已。Mozilla則是剛釋出JetPack最終原型外掛,版本是0.8,而目前正在準備一個不同的軟體包名為JetPack Reboot,預計將會內建在Firefox中。
附加元件是Firefox很重要的一個優勢。這些年來程式人員已經開發了上千種不同用途的套件,讓使用者可以自由客製化他們的瀏覽器,而不需要將全部功能都內建在裡面。Mozilla也在努力打造讓現有的套件系統(XUL)可以不用重開瀏覽器即可安裝或移除套件。
個別來說,這三個元素每一個都值得一提,但是都不足以讓Firefox有明顯的改進。而全部加在一起則顯見Mozilla沒有自滿,而且承諾讓Firefox持續更有競爭力。(楊士範/譯)
沒有留言:
張貼留言