人生苦短,請用 Chrome!

stormzhangV發表於2017-06-14

今年舉辦的 WWDC 大會上,蘋果可是各種指名道姓地踩競爭對手來拔高自己,這種下三濫的營銷手段換做是別人並不稀奇,但是這可是偉大神聖的蘋果啊,有點不適應。其中大會上放出了這麼一幅圖,想必大家都看到過:

人生苦短,請用 Chrome!

我看到這張圖的第一印象是:臥槽,好牛逼!但是,我怎麼有點不信呢。

雖說我相信蘋果不太可能造假,但是這個結果怎麼得出來的隻字未提,這不免讓我心生懷疑,80% 到底是怎麼得出來的?只說結果,不說資料來源就是耍流氓啊。

本著求真務實的精神,搜了下資料,終於搞清楚這個 80% 哪裡來的了。

在此之前得先給大家科普下。

瀏覽器之所以能夠工作,它的核心是一個叫做「核心」的東西,這個核心就類似於汽車的引擎,沒有它瀏覽器是沒法工作的,而市面上的核心有很多種,比如:KHTML、Presto、Trident、WebKit 等,大家熟知的瀏覽器如 Firefox、IE、Opera、Chrome、Safari 等所用的核心都不一樣,而 Chrome 和 Safari 瀏覽器所用的核心是一樣的,叫做「WebKit」,WebKit 其實是蘋果基於開源的核心 KHTML 來改造的,也是開源的。

而核心其實又分為兩部分:渲染引擎和 js 引擎。渲染引擎主要就是負責獲取網頁的 html、xml、圖片、css 等內容進行渲染顯示,js 引擎則負責解析 javascript 語言,實現網頁的動態效果。

Chrome 雖然也是基於 WebKit 核心的,但是 Google 一開始覺得 WebKit 自帶的 js 引擎效能上有問題,所以 Google 專門為 Chrome 搞了個 js 引擎叫做「V8」,所以在核心方面,Chrome 和 Safari 的主要區別就在於 js 引擎不一樣,但是即使是 js 引擎不一樣,以 Google 的技術實力,沒道理讓自家的 js 引擎比 WebKit 慢這麼多啊?

終於在 WebKit 官網搞明白了原因,WebKit 官網在 6 月 5 日發表了一篇文章,地址在這裡:

webkit.org/blog/7536/j…

這篇文章介紹了 WebKit 針對 javascript 最新的核心語言標準 ES6 進行了深度優化,而市面上大部分瀏覽器的穩定版都是基於 ES5 的,並且 Safari 開發版使用了優化後的新技術 ARES-6,並且拿線上的 Chrome 版本跟他們的開發版本進行了測試對比,還給出了一張測試截圖:

人生苦短,請用 Chrome!

看到沒有,Chrome 的執行時間剛好是 Safari 的 1.8 倍,至此,終於算搞明白蘋果的 80% faster 是怎麼來的了。

到目前為止,你們搞明白了沒?

我來給你們總結下,意思就是,蘋果在 WWDC 大會前一天釋出了這篇文章,最新的 WebKit 的 js 引擎針對 ES6 進行了深度優化,並且應用在了 Safari 的開發版,然後跟 Chrome 線上沒有針對 ES6 進行優化的版本進行了對比,最後得出結論 Safari 在 js 的執行效率上比 Chrome 快 80%,然後 WWDC 上開始歡呼。

真的,得知真相的我,有點忍不住想笑。

有人問難道 Chrome 沒有針對 ES6 做優化麼?當然有,只不過當時還是 Chrome 的開發版,沒有正式釋出,不過 WWDC 事後,Google 不服,很快就更新了一版 Chrome,哈哈...

不過,蘋果只是自嗨而已,前一陣子 andreasgal.com 上釋出了一份過去六年瀏覽器的市場份額變化資料,結果其他瀏覽器全部不行了,Chrome 市場份額遙遙領先:

人生苦短,請用 Chrome!

有人可能會質疑 Chrome 市場份額領先這麼多,是不是因為 Android 的原因,那麼下圖這張僅僅是 PC 桌面市場的份額,應該有足夠說服力了:

人生苦短,請用 Chrome!

資料來源見這裡:

andreasgal.com/2017/05/25/…

我自己是 Chrome 的死忠粉,其他瀏覽器我都用過,最終我還是覺得 Chrome 才真的好用,其他瀏覽器跟 Chrome 比還是有差距,具體主要表現在:

  1. Chrome 對開發者的支援是真的強大,內建的 Chrome Dev Tools 簡直不要太好用,堪稱 web 開發必備工具;

  2. Chrome 的外掛太豐富了,基本上只有你想不到,沒有你搜不到的外掛,各種有用的外掛可以讓你的工作、生活更有色彩;

  3. Chrome 有很多實用的小細節,比如位址列輸入 zhihu.com 然後按 tab 建,則直接開啟在知乎的搜尋;又比如快捷鍵 Cmd + Shift + T(windows 系統是 Ctrl + Shift + T)可以無限返回上次訪問的頁面;

  4. Chrome 很快,是真的快。我們姑且就認為 Safari 的 js 引擎比 Chrome 的快 80%,但是你會依然覺得 Chrome 更快,原因就在於我們訪問一個網站的快慢,核心上的一點效能的區別其實感知不到,最大的速度瓶頸可能是來自網路傳輸,而 Chrome 針對網路傳輸做了大幅的優化,比如 Chrome 強大的預測系統,你在輸入網址的時候,Chrome 能預測你要輸入的網址,並且提前 DNS 解析與預載入,所以很多時候你輸入一個網址會覺得秒開,更何況 Safari 比 Chrome 的 js 引擎快 80% 只是自嗨而已。

不過這種針對網路的一系列優化措施也有代價的,會導致記憶體佔用與 CPU 消耗過大,所以很多時候大家能感受到 Chrome 很吃資源就是這個原因,然而,我覺得這是小問題,換個配置稍微高點的電腦,能讓自己的上網體驗更快速是非常值得的,尤其對於開發者來說,吃飯的傢伙如果不捨得投入,那麼你的工作與學習如何才能更有效率?

我不知道有多少人已經在使用 Chrome 了,作為一個使用 Chrome 6、7 年時間的忠實粉,這裡必須號召下那些還沒有使用 Chrome 的同學,人生苦短,請使用 Chrome!

本文原創釋出於微信公眾號 AndroidDeveloper。

相關文章