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