2008年9月12日

Google Chrome 真的比較快嗎?

Google Chrome 推出已經九天了,網路上的新聞和部落格文章數也數不清,我只想談一件事:Google Chrome 真的比較快嗎?

目前看到的文章大多說二件事:

  1. Google Chrome 啟動極快,一按就發
  2. Google Chrome 的 V8 Javascript 引擎真的快:cnet 的 Stephan Shankland 跑 V8 的五個 benchmarkKai Schmerer 跑 SunSpider benchmark,結果都是 Google Chrome 最快。
啟動是從自己的硬碟把程式讀入記憶體執行,沒有什麼外在變因,應該大部分的使用者都會有一致的感覺:真的比較快。

Javascript benchmark 是從網站下載 Javascript 到記憶體執行,只計執行時間,不計下載時間,所以可以針對 Javascript 引擎的效能做控制變因的比較。

可是使用者關心的速度真的是 Javascript 跑得快不快嗎?

別儍了!

使用者要的是從「打完網址按 ENTER」到「網頁顯示到可以閱讀的程度」之間的速度,也就是 end-to-end 的速度,Javascript 只是眾多影響速度的因素之一,其他如網路的速度、HTML rendering 的速度、載入和執行 plug-in 的速度等等因素,也都會影響。

這一版的 Google Chrome 的 HTML rendering 是 WebKit 525.13,效能和同是用 WebKit 的 Safari 應該接近。

在 9/3 的記者會,Google 決定不展示 Javascript benchmark,而是實地用一隻小 Javascript 程式去下載和顯示 4 個在台灣蠻流行的網站,反覆幾次,計時。這就是 end-to-end 的速度。

有人說過 Never live demo 嗎?

在記者會前我們試了幾次都是 Google Chrome 小幅領先 Firefox 3.0.1、明顯贏過 IE 7。沒想到在記者會當場, 依序跑完 IE 和 Firefox 之後,跑 Google Chrome 竟然小輸給 Firefox! 囧rz

眼睛雪亮的讀者大概都猜得出來為什麼會這樣:網路塞車狀況和被連網站當時的負載都會影響跑出來的結果。此外,這些網站用了大量的 Flash,Google Chrome 每頁的 Flash 都要生新的程序來執行,多了一些作業系統的 overhead,即使 Javascript 狂勝結果總共也只是小贏,運氣差一點碰到網路小塞車就輸了...

可見雖然 V8 大勝 Firefox 3.0 或 IE 7 的 Javascript 引擎,並不保證 end-to-end 永遠會贏啊!


後記:

Firefox 3.1 預定會使用 TraceMonkey,目前的 nightly build 裡已經有了,Brendan Eich 做了 TraceMonkey 和 V8 的速度評比,結果是互有優劣,遞迴的程式 V8 快 10 倍,但在日期相關的部分 V8 慢 4.2 倍,處理 64 進位表示的字串也慢了 4 倍。可以想見,TraceMonkey 和 V8 這兩個 open source 的 Javascript 引擎往後在技術上互別苗頭、互學絕招,還有不少好戲可看,這是刺激的時代!

受益的是誰?當然是你我這些愛上網的使用者囉!

嗯... 在 Redmond 的工程師們一定是在天人交戰吧?該自己寫個更厲害的 Javascript 引擎扳回 IE 8 beta 2 在 SunSpider 大輸 Google Chrome 3.8 倍的顏面?還是該把 V8 或是 TraceMonkey 放進 IE?

啊!我知道了,一定是用出各種手段^H^H力量^H^H方法和管道來宣傳 Silverlight,讓全球的網頁開發者唾棄 Javascript!

6 則留言 :

  1. 啊啊啊....我的 exception 被當作範例了 LOL

    回覆刪除
  2. 喔,看到 end-to-end 這個熟悉的詞,忍不住廣告一下舊文:

    我所知道的HTTP測試方法

    ==
    不過,文章中所提到的 Agilent 已經是我的前前公司了 XD

    回覆刪除
  3. ericsk 犧牲小我,留下 Never live demo 的範例,造福眾生啊!

    Google 的 demo 結果被記者寫進媒體文章裡了,就是沒有記取前輩們 Never live demo 的諄諄教誨...

    回覆刪除
  4. 用 Firefox 很習慣了,對於 Google Chrome 快沒甚麼特別感受。

    只不過我的電腦用 Google Chrome 上看癮科技或是一些網站時,有些物件會顯示不正常,比用 IE 看更嚴重,所以只好移掉他。

    我相信這不見得是 Google Chrome 的問題,可能是 Windows 本身的問題,可是這對一般 User 是無法分辨。

    下次如果有新版時,再來試看看吧。

    回覆刪除
  5. 剛好上網查一些資料發現
    Chrome與IE實際上有很大的問題存在
    雖然Chrome效能快,但他捨棄了一些資訊的正確性,來造就他的快.
    舉個例像貴公司的網頁有插入flash,每次有季節活動時,就會直接更換flash內容,檔名都相同.這時如果用Chrome來瀏覽,因為他會先去暫存資料夾檢查是否有同樣來源的flash檔.如果有便不會去網站索取,造成網頁FLASH一直是舊的資訊,但IE不會有此問題.

    回覆刪除
  6. 匿名 先生/小姐:

    請提供實例網址好檢查,但我認為這種基本的錯發生機率應該很小,因為「用舊網址載新內容」的事 web 上很常見,通常用 Cache-Control 或 etag 就能簡單避免出錯。

    回覆刪除