人生苦短,我用 Chrome!
今年舉辦的 WWDC 大會上,蘋果可是各種指名道姓地踩競爭對手來拔高自己,這種下三濫的營銷手段換做是別人并不稀奇,但是這可是偉大神圣的蘋果啊,有點不適應。其中大會上放出了這么一幅圖,想必大家都看到過:
我看到這張圖的***印象是:臥槽,好牛逼!但是,我怎么有點不信呢。
雖說我相信蘋果不太可能造假,但是這個結果怎么得出來的只字未提,這不免讓我心生懷疑,80% 到底是怎么得出來的?只說結果,不說數(shù)據(jù)來源就是耍流氓啊。
本著求真務實的精神,搜了下資料,終于搞清楚這個 80% 哪里來的了。
在此之前得先給大家科普下。
瀏覽器之所以能夠工作,它的核心是一個叫做「內(nèi)核」的東西,這個內(nèi)核就類似于汽車的引擎,沒有它瀏覽器是沒法工作的,而市面上的內(nèi)核有很多種,比如:KHTML、Presto、Trident、WebKit 等,大家熟知的瀏覽器如 Firefox、IE、Opera、Chrome、Safari 等所用的內(nèi)核都不一樣,而 Chrome 和 Safari 瀏覽器所用的內(nèi)核是一樣的,叫做「WebKit」,WebKit 其實是蘋果基于開源的內(nèi)核 KHTML 來改造的,也是開源的。
而內(nèi)核其實又分為兩部分:渲染引擎和 js 引擎。渲染引擎主要就是負責獲取網(wǎng)頁的 html、xml、圖片、css 等內(nèi)容進行渲染顯示,js 引擎則負責解析 javascript 語言,實現(xiàn)網(wǎng)頁的動態(tài)效果。
Chrome 雖然也是基于 WebKit 內(nèi)核的,但是 Google 一開始覺得 WebKit 自帶的 js 引擎性能上有問題,所以 Google 專門為 Chrome 搞了個 js 引擎叫做「V8」,所以在內(nèi)核方面,Chrome 和 Safari 的主要區(qū)別就在于 js 引擎不一樣,但是即使是 js 引擎不一樣,以 Google 的技術實力,沒道理讓自家的 js 引擎比 WebKit 慢這么多啊?
終于在 WebKit 官網(wǎng)搞明白了原因,WebKit 官網(wǎng)在 6 月 5 日發(fā)表了一篇文章,地址在這里:
https://webkit.org/blog/7536/jsc-loves-es6/
這篇文章介紹了 WebKit 針對 javascript ***的核心語言標準 ES6 進行了深度優(yōu)化,而市面上大部分瀏覽器的穩(wěn)定版都是基于 ES5 的,并且 Safari 開發(fā)版使用了優(yōu)化后的新技術 ARES-6,并且拿線上的 Chrome 版本跟他們的開發(fā)版本進行了測試對比,還給出了一張測試截圖:
看到?jīng)]有,Chrome 的運行時間剛好是 Safari 的 1.8 倍,至此,終于算搞明白蘋果的 80% faster 是怎么來的了。
到目前為止,你們搞明白了沒?
我來給你們總結下,意思就是,蘋果在 WWDC 大會前一天發(fā)布了這篇文章,***的 WebKit 的 js 引擎針對 ES6 進行了深度優(yōu)化,并且應用在了 Safari 的開發(fā)版,然后跟 Chrome 線上沒有針對 ES6 進行優(yōu)化的版本進行了對比,***得出結論 Safari 在 js 的執(zhí)行效率上比 Chrome 快 80%,然后 WWDC 上開始歡呼。
真的,得知真相的我,有點忍不住想笑。
有人問難道 Chrome 沒有針對 ES6 做優(yōu)化么?當然有,只不過當時還是 Chrome 的開發(fā)版,沒有正式發(fā)布,不過 WWDC 事后,Google 不服,很快就更新了一版 Chrome,哈哈...
不過,蘋果只是自嗨而已,前一陣子 andreasgal.com 上發(fā)布了一份過去六年瀏覽器的市場份額變化數(shù)據(jù),結果其他瀏覽器全部不行了,Chrome 市場份額***:
有人可能會質疑 Chrome 市場份額領先這么多,是不是因為 Android 的原因,那么下圖這張僅僅是 PC 桌面市場的份額,應該有足夠說服力了:
數(shù)據(jù)來源見這里:
https://andreasgal.com/2017/05/25/chrome-won/
我自己是 Chrome 的死忠粉,其他瀏覽器我都用過,最終我還是覺得 Chrome 才真的好用,其他瀏覽器跟 Chrome 比還是有差距,具體主要表現(xiàn)在:
1. Chrome 對開發(fā)者的支持是真的強大,內(nèi)置的 Chrome Dev Tools 簡直不要太好用,堪稱 web 開發(fā)必備工具;
2. Chrome 的插件太豐富了,基本上只有你想不到,沒有你搜不到的插件,各種有用的插件可以讓你的工作、生活更有色彩;
3. Chrome 有很多實用的小細節(jié),比如地址欄輸入 zhihu.com 然后按 tab 建,則直接開啟在知乎的搜索;又比如快捷鍵 Cmd + Shift + T(windows 系統(tǒng)是 Ctrl + Shift + T)可以***返回上次訪問的頁面;
4. Chrome 很快,是真的快。我們姑且就認為 Safari 的 js 引擎比 Chrome 的快 80%,但是你會依然覺得 Chrome 更快,原因就在于我們訪問一個網(wǎng)站的快慢,內(nèi)核上的一點性能的區(qū)別其實感知不到,***的速度瓶頸可能是來自網(wǎng)絡傳輸,而 Chrome 針對網(wǎng)絡傳輸做了大幅的優(yōu)化,比如 Chrome 強大的預測系統(tǒng),你在輸入網(wǎng)址的時候,Chrome 能預測你要輸入的網(wǎng)址,并且提前 DNS 解析與預加載,所以很多時候你輸入一個網(wǎng)址會覺得秒開,更何況 Safari 比 Chrome 的 js 引擎快 80% 只是自嗨而已。
不過這種針對網(wǎng)絡的一系列優(yōu)化措施也有代價的,會導致內(nèi)存占用與 CPU 消耗過大,所以很多時候大家能感受到 Chrome 很吃資源就是這個原因,然而,我覺得這是小問題,換個配置稍微高點的電腦,能讓自己的上網(wǎng)體驗更快速是非常值得的,尤其對于開發(fā)者來說,吃飯的家伙如果不舍得投入,那么你的工作與學習如何才能更有效率?
我不知道有多少人已經(jīng)在使用 Chrome 了,作為一個使用 Chrome 6、7 年時間的忠實粉,這里必須號召下那些還沒有使用 Chrome 的同學,人生苦短,請使用 Chrome!
【本文為51CTO專欄作者“stormzhang”原創(chuàng)稿件,轉載請聯(lián)系原作者(微信號:googdev)】