今年举办的 WWDC 大会上,苹果可是各种指名道姓地踩竞争对手来拔高自己,这种下三滥的营销手段换做是别人并不稀奇,但是这可是伟大神圣的苹果啊,有点不适应。其中大会上放出了这么一幅图,想必大家都看到过:

我看到这张图的第一印象是:卧槽,好牛逼!但是,我怎么有点不信呢。

虽说我相信苹果不太可能造假,但是这个结果怎么得出来的只字未提,这不免让我心生怀疑,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 日发表了一篇文章,地址在这里:

https://webkit.org/blog/7536/jsc-loves-es6/

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

数据来源见这里:

https://andreasgal.com/2017/05/25/chrome-won/

我自己是 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!

本文原创发布于微信公众号「googdev」,编程、职场、思维,关注并回复关键字「GitHub」、「Android」、「Python」、「Java」、「AI」等获取免费学习资料。

人生苦短,请用 Chrome!相关推荐

  1. Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞

    强烈建议:Chrome用户请尽快升级浏览器!在谷歌今天发布的紧急补丁程序中修复了两个严重的零日漏洞,而其中一个已经被黑客利用.Chrome安全小组表示,这两个漏洞均为use-after-free形式, ...

  2. 亲,你的浏览器过时了,请立即更换Chrome浏览器。

    亲,你的浏览器过时了,请使用chrome 当看到这句话我十分惊讶! 我问一下别人才知道,原来高手都在用chrome!看来我这菜鸟真是落后了. 亲,敢快来抢购吧! 什么时候csdn也拓展一下自己的业务. ...

  3. 仅支持chrome的滚动条样式

    http://www.xuanfengge.com/css3-webkit-scrollbar.html https://www.codeproject.com/tips/674478/customi ...

  4. 程序员的你是否熟练掌握Chrome开发者工具?

    写在前面 再过几天就是1024程序员节日了,这里提前祝各位程序员同胞们节日快乐哈^_^ 回归正题,本文主要是介绍一下Chrome developer tool(开发者工具)的使用,以方便我们的日常开发 ...

  5. chrome添加来自其他网站的扩展程序

    chrome添加来自其他网站的扩展程序 原文网址:http://support.google.com/chrome_webstore/bin/answer.py?hl=zh-Hans&answ ...

  6. SocketLog-微信调试、API调试和AJAX的调试的工具,能将日志通过WebSocket输出到Chrome浏览器的console中

    说明 SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示"改公众账号暂时无法 ...

  7. Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)

    Firefox 下载的FTP页面: http://ftp.mozilla.org/pub/firefox/releases/ Firefox下载官方页面: https://www.mozilla.or ...

  8. chromebook刷机_如何为不支持Chrome操作系统的网站欺骗Chromebook用户代理

    chromebook刷机 Not all browsers handle websites the same, and if they don't support your operating sys ...

  9. chrome同步_如何在Chrome中打开或关闭同步

    chrome同步 Google Chrome lets you sync up your Google account to your browser across any device. When ...

  10. 如何从Internet Explorer或Edge迁移到Chrome(以及为什么要迁移)

    Google's Chrome web browser is now more widely used than Microsoft's Internet Explorer and Edge comb ...

最新文章

  1. 云栖小镇不是“镇”,就像中关村不是“村”。小镇是一个符号,就像起建于50年前的硅谷的“谷”,和100年前爱迪生所在的门洛公园。...
  2. solaris迅速查找手册
  3. 主机主浏览服务器宣告的运作原理机制
  4. 使用JDK的密码流的加密怪癖(以及如何做)
  5. android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系
  6. 小米android点击,自动点击器小米版
  7. 使用 JMeter 进行API接口压力测试
  8. Spring 的事务传播机制
  9. 骰子游戏实验报告C语言,掷骰子游戏电路的设计与实现实验报告
  10. PDF文件如何插入图片?简单的操作方法
  11. Cisco交换机与路由器登陆密码破解(保存原配置)
  12. 【教学类-20-02】20221203《世界杯16强国旗-定量版》(大班)
  13. DDIM代码详细解读(1):数据集加载、类别条件信息读取、关键超参数解析
  14. 如何重置Mac的蓝牙模块以解决连接问题
  15. Machine Learning Practical 爱宝week2
  16. 阿里云服务器被挖矿程序侵入问题
  17. 利用DSF深度优先搜索来解容器倒水问题
  18. VMware虚拟机启动后出现黑屏解决方法
  19. 随机漫步的傻瓜:发现市场和人生中的隐藏机遇
  20. 沐神动手深度学习 06线性回归从0开始实现

热门文章

  1. poj 2029 Get Many Persimmon Trees 二维树状数组
  2. Illustrator中文版教程,如何在 Illustrator中设置图标项目?
  3. Illustrator 教程,如何在 Illustrator 中沿路径添加文本?
  4. 只需简单的整理,让你的Mac 更安全、更智能
  5. AltTab 把 Windows 的 Alt+Tab 功能带到 macOS
  6. ios开发之cocoapods导入新三方库报错RuntimeError - [Xcodeproj] Unknown object version.
  7. 如何对MacBook上坏掉的USB-C接口进行故障排除?
  8. 从这6个方面,帮你轻松管理Chrome中保存的密码!
  9. 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
  10. 匆忙赶路的时候别忘了适时停下来回头看看