人生苦短,请用 Chrome!

今年举办的 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.org/blog/7536/j…网络

这篇文章介绍了 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 桌面市场的份额,应该有足够说服力了:

数据来源见这里:

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 六、7 年时间的忠实粉,这里必须号召下那些尚未使用 Chrome 的同窗,人生苦短,请使用 Chrome!

本文原创发布于微信公众号 AndroidDeveloper。

相关文章
相关标签/搜索