今年舉辦的 WWDC 大會上,蘋果但是各類指名道姓地踩競爭對手來拔高本身,這種下三濫的營銷手段換作是別人並不稀奇,可是這但是偉大神聖的蘋果啊,有點不適應。其中大會上放出了這麼一幅圖,想必你們都看到過:javascript
我看到這張圖的第一印象是:臥槽,好牛逼!可是,我怎麼有點不信呢。css
雖然說我相信蘋果不太可能造假,可是這個結果怎麼得出來的隻字未提,這難免讓我心生懷疑,80% 究竟是怎麼得出來的?只說結果,不說數據來源就是耍流氓啊。html
本着求真務實的精神,搜了下資料,終於搞清楚這個 80% 哪裏來的了。java
在此以前得先給你們科普下。web
瀏覽器之因此可以工做,它的核心是一個叫作「內核」的東西,這個內核就相似於汽車的引擎,沒有它瀏覽器是無法工做的,而市面上的內核有不少種,好比:KHTML、Presto、Trident、WebKit 等,你們熟知的瀏覽器如 Firefox、IE、Opera、Chrome、Safari 等所用的內核都不同,而 Chrome 和 Safari 瀏覽器所用的內核是同樣的,叫作「WebKit」,WebKit 實際上是蘋果基於開源的內核 KHTML 來改造的,也是開源的。chrome
而內核其實又分爲兩部分:渲染引擎和 js 引擎。渲染引擎主要就是負責獲取網頁的 html、xml、圖片、css 等內容進行渲染顯示,js 引擎則負責解析 javascript 語言,實現網頁的動態效果。windows
Chrome 雖然也是基於 WebKit 內核的,可是 Google 一開始以爲 WebKit 自帶的 js 引擎性能上有問題,因此 Google 專門爲 Chrome 搞了個 js 引擎叫作「V8」,因此在內核方面,Chrome 和 Safari 的主要區別就在於 js 引擎不同,可是即便是 js 引擎不同,以 Google 的技術實力,沒道理讓自家的 js 引擎比 WebKit 慢這麼多啊?瀏覽器
終於在 WebKit 官網搞明白了緣由,WebKit 官網在 6 月 5 日發表了一篇文章,地址在這裏:微信
這篇文章介紹了 WebKit 針對 javascript 最新的核心語言標準 ES6 進行了深度優化,而市面上大部分瀏覽器的穩定版都是基於 ES5 的,而且 Safari 開發版使用了優化後的新技術 ARES-6,而且拿線上的 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 市場份額領先這麼多,是否是由於 Android 的緣由,那麼下圖這張僅僅是 PC 桌面市場的份額,應該有足夠說服力了:
數據來源見這裏:
我本身是 Chrome 的死忠粉,其餘瀏覽器我都用過,最終我仍是以爲 Chrome 才真的好用,其餘瀏覽器跟 Chrome 比仍是有差距,具體主要表如今:
Chrome 對開發者的支持是真的強大,內置的 Chrome Dev Tools 簡直不要太好用,堪稱 web 開發必備工具;
Chrome 的插件太豐富了,基本上只有你想不到,沒有你搜不到的插件,各類有用的插件可讓你的工做、生活更有色彩;
Chrome 有不少實用的小細節,好比地址欄輸入 zhihu.com 而後按 tab 建,則直接開啓在知乎的搜索;又好比快捷鍵 Cmd + Shift + T(windows 系統是 Ctrl + Shift + T)能夠無限返回上次訪問的頁面;
Chrome 很快,是真的快。咱們姑且就認爲 Safari 的 js 引擎比 Chrome 的快 80%,可是你會依然以爲 Chrome 更快,緣由就在於咱們訪問一個網站的快慢,內核上的一點性能的區別其實感知不到,最大的速度瓶頸多是來自網絡傳輸,而 Chrome 針對網絡傳輸作了大幅的優化,好比 Chrome 強大的預測系統,你在輸入網址的時候,Chrome 能預測你要輸入的網址,而且提早 DNS 解析與預加載,因此不少時候你輸入一個網址會以爲秒開,更況且 Safari 比 Chrome 的 js 引擎快 80% 只是自嗨而已。
不過這種針對網絡的一系列優化措施也有代價的,會致使內存佔用與 CPU 消耗過大,因此不少時候你們能感覺到 Chrome 很吃資源就是這個緣由,然而,我以爲這是小問題,換個配置稍微高點的電腦,能讓本身的上網體驗更快速是很是值得的,尤爲對於開發者來講,吃飯的傢伙若是不捨得投入,那麼你的工做與學習如何才能更有效率?
我不知道有多少人已經在使用 Chrome 了,做爲一個使用 Chrome 六、7 年時間的忠實粉,這裏必須號召下那些尚未使用 Chrome 的同窗,人生苦短,請使用 Chrome!
本文原創發佈於微信公衆號 AndroidDeveloper。