【分享】JavaScript成瀏覽器大戰焦點


Recommended Posts

JavaScript成瀏覽器大戰焦點

低調潛伏在網站程式碼中十幾年的JavaScript,現在竟成為網路瀏覽器二次大戰的主要戰場。

開發者用來製作從基本網站選單到線上試算表應用程式等各類功能的JavaScript,誕生於1990年代中期,當時微軟的IE挑戰領先的 Netscape Navigator。IE贏了第一次的瀏覽器大戰,但現在面臨Navigator後裔—Mozilla Firefox的復仇,和包括Google Chrome、蘋果Safari和Opera等新興瀏覽器的挑戰。

所有挑戰者都以JavaScript表現為主要的攻擊武器,甚至為各自的JavaScript引擎命名:Chrome叫V8、Firefox的 TraceMonkey、Opera有Futhark和即將推出的Carakan,而Safari新推出的Nitro,則是WebKit Squirrelfish的蘋果版。

僅管IE在JavaScript表現上落後對手,微軟其實非常在乎自家產品的整體表現,尤其是JavaScript表現。微軟在19日發佈了全新版本的瀏覽器,Internet Explorer 8。但顯然該公司對所謂的效能表現有很不同的看法。

IE總經理Dean Hachamovitch說:「我們會繼續讓指令引擎更快,(但)目前還不清楚有多少人是根據指令表現作選擇。JavaScript對網頁載入的速度,只有小部分影響。那是一部份,但絕不是最重要的部分。」

Hachamovitch表示,因為很容易計算,JavaScript表現就「成為瀏覽器效能的簡略表達方式」。微軟開始主打一段新的網頁載入速度測試影片,片中顯示IE 8的整體表現勝過Firefox 3.0.5和Chrome 1.0。

但或許不是巧合,Google在IE 8正式發佈的前一天,也推出自己的Chrome Experiments網站,主打其高效能的JavaScript引擎和推銷其瀏覽器。不過Chrome通常用aplomb執行網站的應用程式,與IE不同。

攻守兩陣營之間的差異可簡化如下:微軟是鎖定現在的網路,而對手們是放眼未來的網路。

網際網路正從一個靜態網頁構成的網絡,進化成一個同時包含可執行特定運算工作之應用程式,和供民眾互動的網絡。換句話說,瀏覽器除了載入頁面,現在還需處理資料。微軟的多數佔有率(Net Applications的統計為67%),反映的是較主流的世界,而挑戰者是針對他們認為的未來主流趨勢。Mozilla的Firefox經理Mike Beltzner說:「我們讓JavaScript更快,網路就能變成更有趣和互動性更高的地方。」

Google所見略同

Chrome工程師Darin Fisher說:「我們看到很多網路開發者惋惜他們無法作出自己想要的東西,因為JavaScript是一項限制因素。」這當然不是唯一的瓶頸,但Google認為:「目前為止我們看到最大的效能機會,就是改進JavaScript。」

JavaScript加速Google是直接受益者。該公司極力推廣的雲端運算,就是用網路上的應用軟體取代在個人電腦上執行的傳統應用軟體。但除了 Google Docs、Google Calendar和Gmail之外,Yahoo、Facebook和無數其他網站,也都擴大使用JavaScript,甚至微軟都準備推出Office套裝軟體的線上版。

AdventNet旗下提供網路文字處理、試算表和其他功能的Zoho部門,也迫切需要更快的JavaScript。Zoho執行長Sridhar Vembu表示,目前該公司必須為IE 6使用者,單獨設立一個功能性較低的網站。對於新一代的瀏覽器,Venbu說:「我們樂觀其成,因為對我們這些應用軟體而言,這代表JavaScript 的表現和功能,有基本上的突破。我想在一年之內,我們會看到這類瀏覽器主導整個局勢。」

他對於微軟將努力縮小與對手的JavaScript差距也很樂觀:「我相信微軟會趕上。」

只強調JavaScript,似乎過於簡化目前網路應用軟體所面對的問題。(當然還有許多其他面向影響瀏覽器品質。包括安全防護、附加軟體可得性、作業系統支援、使用者介面反應度,和網站支援等。)隨著網路標準而來的新技術,如HTML 5和CSS 3,也有益於網路應用軟體。但JavaScript是將所有那些要素與網站結合,然後確實執行工作的程式語言。Beltzner說:「那些都是由 JavaScript中介,它確實是網路的主控結構。」

JavaScript並非一夕爆紅,它是在程式設計師發現如何利用它重建某些PC軟體的互動性到網路應用軟體的過程中,逐漸受到歡迎。以Yahoo郵件服務為例,使用者可以點選一則訊息,然後拖曳到某個資料夾裡。這種高階JavaScript技術通稱為Ajax。Beltzner說:「一、兩年前,大家開始接受比過去更仰賴JavaScript的新開發模式。我們已經到達一個網路開發者希望作到超出瀏覽器能力範圍的程度。」

2008年,JavaScript引擎躍居瀏覽器進化圈的焦點。去年6月WebKit先推出Squirrelfish,緊接著在9月又推出 Squirrelfish Extreme。Firefox去年8月發表 TraceMonkey,Google隨後在9月推出Chrome和V8。今年2月,Opera發表號稱超越上述所有引擎的Carakan,相隔一個月,蘋果公司也發佈JavaScript速度更快的Safari 4 beta版。

Beltzner說:「我想真正引燃戰火的是WebKit。有其他人一起競爭,讓我們質疑自己是否已經盡力作到最好。」而Chrome「的確是一個持續的壓力。」

微軟為自己的優先順序辯護,IE資深經理Amy Barzdukas說:「我們確實注意到其他瀏覽器在作什麼。瀏覽器製造者不能只是對最新技術敏感,還要在意民眾使用網路的狀況。」

對於那些有意構建更高階網路應用軟體的公司,微軟還有另一個答案:Silverlight軟體。上週三才發佈第三版的Silverlight,直接挑戰目前網路應用軟體和附加軟體較普遍使用的Adobe Flash。

目前JavaScript的發展軌道,似乎與使用微軟C#程式語言的Silverlight較有衝突,而Flash使用與JavaScript較相近的 ActionScript。為Chrome Experiments製作Ball Pool和Google Gravity兩種軟體的程式設計師Mr. Doob(網路化名)表示:「JavaScript在Chrome幾乎已達到Flash的速度。」

Mr. Doob(本身是Flash程式設計師,為了Chrome Experiments才去學JavaScript)受訪時表示,JavaScript大約有Flash三分之二的速度。但還有弱點,例如他發現 JavaScript開發者工具太過原始,此外,每一種瀏覽器的JavaScript都不一樣。

他說:「ActionScript的主要優點,是它在任何瀏覽器的任何版本看起來都一樣,甚至包括IE 6!JavaScript要看瀏覽器支援哪些功能,你必須多花一些時間確定你的計畫在所有瀏覽器都可以用,而不是實際開發計畫本身。」為了讓他的 Chrome軟體在其他瀏覽器執行,Doob說:「我必須解決一些會減緩表現和嚴重影響使用者經驗的麻煩問題。」

但通常,隨著程式編寫技術漸趨成熟,它們會歸於共同的標準,和更精確的工具。現在,效能表現是最高優先。至少要等到JavaScript夠快,其他問題才會浮上台面。Fisher說:「只要一點競爭,其他公司就會專注在這個問題上。」而到某個時刻,「這個問題突然間不是問題了,我們就可以前進到下一個議題。」(陳智文譯)

鏈接文章
分享到其他網站

現在的網頁上有很多 javascript 的應用,包括用此做出來的動態效果。

如下面這種東西:

slidej.png

用這個動態效果的滑順程度就可以明顯看出瀏覽器載入 javascript 的能力。

目前很明顯是 webkit 架構的瀏覽器(Safari、Chrome)最「滑」,Firefox有點頓、IE則是卡得很嚴重。

現在有些應用新穎作法的網頁也只有webkit開得起來。

例如這個:http://grids.monoceroi.com

黃企鵝

鏈接文章
分享到其他網站

Chrome採用新方法加速JavaScript

Chrome程式設計師已捨棄一套第三方軟體,改用自己的取而代之,設法讓Google的開原碼瀏覽器速度進一步加快。

作這項改變的同時,也發布了一項重要的元件,這是處理JavaScript語法(稱為「regular expressions」)時的關鍵要素。

程式設計師Erik Corry、Christian Plesner Hansen和Lasse Reichstein Holst Nielsen在Chromium部落格貼文裡說:「我們已改良此語言的其他部分,現在regexps開始顯得比其他元件都來得緩慢。我們覺得可以改善其效能,作法就是與我們現有的基礎架構整合,而不是使用外部的程式庫(library)。 」

Google自己的專案計畫,稱為「Irregexp」,因此應運而生。「Irregexp」是Chrome開發者預覽版 2.0.160.0首要標榜的功能。若你對Google選擇原生程式碼製作、回溯避免、intermediate automaton representation等技術細節感到好奇,請查閱該部落格貼文。

先前,Chrome採用一套支援性的軟體庫,稱為「JPCRE」,是Webkit瀏覽計畫PCRE軟體組合的一個形式。這讓Chrome跑起來類似蘋果以Webkit為基礎的Safari瀏覽器,消除了相容性的問題,但如今Google認為此刻手邊有相容性問題需要解決。

Chrome的程式設計師說:「在開發期間,我們用Irregexp測試100萬個人氣最高的網頁,以確定新的implementation與先前的implementation和Web相容。」

另外,他們還宣布,已製作完成新的第三版JavaScript benchmark,這一版專門執行擷取自前50大熱門網頁的一般expressions。

JavaScript愈來愈廣泛用來打造功能先進的網路應用程式,包括Google Docs和Gmail。

Speed特別重要,因為JavaScript用於互動式的網頁,反應是迅速或遲鈍,立見分曉。但JavaScript也廣泛用於許多普通的日常應用,所以JavaScript速度加快也有助於改善整體的網頁瀏覽效能。

Chrome的JavaScript引擎稱為V8,Mozilla的Firefox則有TraceMonkey和WebKithas Squirrelfix Extreme。Opera希望能以新的「Carakan」JavaScript引擎,領先群倫。

但Google也打算更新V8,詳情可望在5月登場的Google I/O開發者大會上宣布,屆時軟體將是一大焦點議題,包括如何「將V8帶往新的效能層次」。

另外,Google周三也對測試使用者發布1.0.154.46版的Chrome,這個最新版本修補了一項安全漏洞,並矯正Chrome的incognito mode問題。(唐慧文譯)

新版Safari的JavaScript速度直逼Chrome

Google最新版Chrome在筆者的JavaScript速度測試中已經拿下第一,不過蘋果新版Safari 4 beta則是第一個能夠挑戰Google的。

sunspider_tests.png

在SunSpider測試中,新版Safari 4 beta拿到第三名。

JavaScript是一種程式語言,不僅一般網站有使用,目前許多Web-based應用比如Google Docs也都需要它。隨著業界逐漸看重雲端運算,Web應用性能也變得更加重要,因此業者都競相推出最好的JavaScript引擎。而 JavaScript引擎在各家版本的命名也不大不同,比如Chrome的 V8、Firefox 的 TraceMonkey、Opera的Futhark,還有未來的Carakan,現在還加入Safari最新的Nitro(算是蘋果版的WebKit Squirrelfish )。

我使用兩種測試:WebKit計畫的SunSpier標竿測試,以及Google的V8測試。上述兩種軟體都會跑好幾種軟體工作,而非採實際應用。

結果:Chrome在兩種測試都勝出,Firefox在SunSpider排第二,Safari則在V8排第二。

我是用最不穩定的瀏覽器版本作測試。Chrome目前提供三種版本:穩定、beta與開發者預覽,我使用最後這一個,也是最不穩定的。

Safari是拿3.2.2版本、4.0 beta;Firefox則是 3.1 beta 2;微軟IE 8 release candidate,以及Opera 10 alpha。

我使用的機器是雙核 Lenovo T61、Windows XP,3GB記憶體;若用蘋果Mac來跑結果鐵定不同。

v8_benchmark_tests.png

在Google的V8 JavaScript測試中,Safari 4 beta是唯一逼近Chrome分數的。

Safari 4 beta在Google的第三版測試中有強勁的表現,這裡的數字是越大越好,它得到1396分,算是第一個真的跟Chrome分數很接近的瀏覽器,Chrome這次拿到的是2240;Opera為202,Firefox 181;Safari 2.2.2 173與IE都只有63。

在SunSpider 0.9上,結果比較平均:Chrome得到1775(這裡是越小越好);Firefox 2671、Safri 4為4257、Opera 5513;Safari 3.2.2為6345;IE僅拿到7168。

鏈接文章
分享到其他網站

Firefox、Chrome跑JavaScript幾乎一樣快

chrome_vs_ffox_12.9.2008.png

(越短越快)

在SunSpider上檢測JavaScript效能的測試結果顯示,最新版Google Chrome瀏覽器的執行速度只比Mozilla的Firefox稍稍慢了一點。

Mozilla周四釋出Firefox 3.1 beta 2版,Google則發布Chrome 0.4.154.33版。所以,現在是再做一次JavaScript效能測試的好時機。

測試報告的重點還包括:Firefox的SunSpider測試結果仍以2,110分維持領先,但Chrome的得分正急起直追,以2,140分拉近了差距。分數愈低表示效能愈好。由於幾次測試下來的結果不一,所以我引用的數據是數次測試結果的平均值。

市面上的瀏覽器不只Firefox和Chrome兩種,但拿這兩種做比較很有意思。理由如下:一,兩者都是開放原始碼軟體,都意在以新的瀏覽體驗挑戰 Internet Explorer瀏覽器;二,基於上述理念,這兩種瀏覽器可能吸引勇於搶先採用的使用者;三,兩者都有新的 JavaScript引擎,Chrome的V8和Mozilla的TraceMonkey,在新beta測試版的預設狀態下都是啟動的。

JavaScript用來打造功能複雜的網站,例如Gmail或Google Docs,但也用於比較平常的運作。所以,JavaScript效能的速度加快是好事。Google曾提出一種可能性,就是未來網路應用程式也許能完全不用JavaScript、直接採用Google新開發的原生用戶端(Native Client)軟體--這項研究計畫宣稱,可讓架構在網路上的軟體跑起來幾乎像在電腦上執行一樣快。

Chrome在的JavaScript效能測試中一直都在進步,Firefox的表現則時好時壞。

不過,SunSpider只是其中一項測試;在Google自己的JavaScript效能測試中,Chrome大獲全勝。第一個Firefox beta版有瑕疵,妨礙我在Google的效能測試上做檢測,但新的beta版產生的分數是182分,比先前的Firefox 3.1 beta版的235分低,所以或許仍有些地方有偏差。無論如何,這結果都跟Chrome 0.4.154.33版的2,635分相差甚大。

要注意的是:你的測試結果可能跟我的不同。我的上述測試是在雙核心聯想Lenovo T61筆記型電腦上做的,搭配的是3GB記憶體與Windows XP。JavaScript只是網頁瀏覽器效能的一個面向,而且,這軟體現在只是beta版而已,尤其Chrome還只是developer beta。最後,我得向部分讀者說聲抱歉,因為時間限制,我無法測試最新的WebKit builds和 Opera。

根據Google Chrome計畫經理Mark Larson的說法,Chrome 0.4.154.33修正了先前的軟體錯誤,包括在64位元Windows開啟選項(Options)對話框時會當機,以及使用Hotmail時遭遇的一些問題。但Larson說:「Hotmail仍無法妥善辨認Google Chrome。」(唐慧文/譯)

chrome_vs_ffox_googtest_12.9.2008.png

鏈接文章
分享到其他網站

請登入後來留意見

在登入之後,您才能留意見



立即登入