人生苦短,请用 Chrome!
今年举办的 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 比还是有差距,具体主要表现在:
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 6、7 年时间的忠实粉,这里必须号召下那些还没有使用 Chrome 的同学,人生苦短,请使用 Chrome!
本文原创发布于微信公众号「googdev」,编程、职场、思维,关注并回复关键字「GitHub」、「Android」、「Python」、「Java」、「AI」等获取免费学习资料。
人生苦短,请用 Chrome!相关推荐
- Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞
强烈建议:Chrome用户请尽快升级浏览器!在谷歌今天发布的紧急补丁程序中修复了两个严重的零日漏洞,而其中一个已经被黑客利用.Chrome安全小组表示,这两个漏洞均为use-after-free形式, ...
- 亲,你的浏览器过时了,请立即更换Chrome浏览器。
亲,你的浏览器过时了,请使用chrome 当看到这句话我十分惊讶! 我问一下别人才知道,原来高手都在用chrome!看来我这菜鸟真是落后了. 亲,敢快来抢购吧! 什么时候csdn也拓展一下自己的业务. ...
- 仅支持chrome的滚动条样式
http://www.xuanfengge.com/css3-webkit-scrollbar.html https://www.codeproject.com/tips/674478/customi ...
- 程序员的你是否熟练掌握Chrome开发者工具?
写在前面 再过几天就是1024程序员节日了,这里提前祝各位程序员同胞们节日快乐哈^_^ 回归正题,本文主要是介绍一下Chrome developer tool(开发者工具)的使用,以方便我们的日常开发 ...
- chrome添加来自其他网站的扩展程序
chrome添加来自其他网站的扩展程序 原文网址:http://support.google.com/chrome_webstore/bin/answer.py?hl=zh-Hans&answ ...
- SocketLog-微信调试、API调试和AJAX的调试的工具,能将日志通过WebSocket输出到Chrome浏览器的console中
说明 SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示"改公众账号暂时无法 ...
- Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)
Firefox 下载的FTP页面: http://ftp.mozilla.org/pub/firefox/releases/ Firefox下载官方页面: https://www.mozilla.or ...
- chromebook刷机_如何为不支持Chrome操作系统的网站欺骗Chromebook用户代理
chromebook刷机 Not all browsers handle websites the same, and if they don't support your operating sys ...
- chrome同步_如何在Chrome中打开或关闭同步
chrome同步 Google Chrome lets you sync up your Google account to your browser across any device. When ...
- 如何从Internet Explorer或Edge迁移到Chrome(以及为什么要迁移)
Google's Chrome web browser is now more widely used than Microsoft's Internet Explorer and Edge comb ...
最新文章
- 云栖小镇不是“镇”,就像中关村不是“村”。小镇是一个符号,就像起建于50年前的硅谷的“谷”,和100年前爱迪生所在的门洛公园。...
- solaris迅速查找手册
- 主机主浏览服务器宣告的运作原理机制
- 使用JDK的密码流的加密怪癖(以及如何做)
- android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系
- 小米android点击,自动点击器小米版
- 使用 JMeter 进行API接口压力测试
- Spring 的事务传播机制
- 骰子游戏实验报告C语言,掷骰子游戏电路的设计与实现实验报告
- PDF文件如何插入图片?简单的操作方法
- Cisco交换机与路由器登陆密码破解(保存原配置)
- 【教学类-20-02】20221203《世界杯16强国旗-定量版》(大班)
- DDIM代码详细解读(1):数据集加载、类别条件信息读取、关键超参数解析
- 如何重置Mac的蓝牙模块以解决连接问题
- Machine Learning Practical 爱宝week2
- 阿里云服务器被挖矿程序侵入问题
- 利用DSF深度优先搜索来解容器倒水问题
- VMware虚拟机启动后出现黑屏解决方法
- 随机漫步的傻瓜:发现市场和人生中的隐藏机遇
- 沐神动手深度学习 06线性回归从0开始实现
热门文章
- poj 2029 Get Many Persimmon Trees 二维树状数组
- Illustrator中文版教程,如何在 Illustrator中设置图标项目?
- Illustrator 教程,如何在 Illustrator 中沿路径添加文本?
- 只需简单的整理,让你的Mac 更安全、更智能
- AltTab 把 Windows 的 Alt+Tab 功能带到 macOS
- ios开发之cocoapods导入新三方库报错RuntimeError - [Xcodeproj] Unknown object version.
- 如何对MacBook上坏掉的USB-C接口进行故障排除?
- 从这6个方面,帮你轻松管理Chrome中保存的密码!
- 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
- 匆忙赶路的时候别忘了适时停下来回头看看