BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

微软表示Edge的性能更优于Chrome和Firefox

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年5月25日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

本文简要叙述了Chakra引擎的部分性能优化工作,以及对Edge、Chrome和Firefox进行的Octane和Jet Stream基准测试分析结果。

正如在“从开发者的角度看微软Edge浏览器”一文中所列举的细节一样,这个本部位于雷蒙德的浏览器开发者对于web技术、web标准以及与其它浏览器的兼容性的态度发生了转变。他们抛弃了一些旧的IE组件,并决定在新的渲染引擎中严格地遵从HTML、JavaScript与CSS的标准。不仅如此,他们终于开始应对这个已经被拖延了很久的问题:性能。

IE浏览器中主要的性能瓶颈与JavaScript的处理有关,微软在Edge浏览器中的新版本Chakra JavaScript引擎中修复了部分问题。我们在此处简单地列举一些得到改善的部分(可以在这里这里找到更多详细内容):

  • Chakra引入了一个新的Simple JIT编译器,它的优化过程较短,因此能够更快地执行代码。Profiling过程可以继续执行而无需等待,引擎只会在Full JIT生成的优化代码可用时切换至这种模式。Simple JIT是作为一个后台线程运行的。
  • 根据底层硬件的不同,Chakra可运行多个JIT线程,因此编译的过程更快。由于这方面的改善,TypeScript的速度也提升了30%。
  • 最后的垃圾回收(GC)标注过程现在可以在主线程与GC线程上同时进行,因此最后GC标注过程对主线程的干扰可减少最多48%。
  • 通过使用静态数据减少了代码内联过程的开销。
  • Chakra现在允许跨文件的脚本内联。
  • 在ES6中即将到来的const特性可以使编译器省略对变量进行检查,以判断它是否产生改变的过程。对于没有使用const的Web应用来说,Chakra能够辨别出没有产生改变的全局变量,然后将它们作为const进行处理,以避免变量查找所带来的时间开销。
  • JIT编译器对通过UglifyJS生成的最小化代码进行了更好的优化,目前排名前1000的网站中的绝大部分都使用了UglifyJS。
  • JIT现在对try-catch语句块中的代码进行了优化。

在看到这么多改进与优化之后,我们不由得想看看Edge究竟能有多快。根据微软的说法,Edge目前比Chrome和Firefox更快,如下图所示:

(单击图片以放大。该基准测试是由微软在64位Windows 10技术预览版上的64位浏览器上完成的,使用的硬件是HP Compaq 8100 Elite,带有4核i7 860 2.80GHz CPU与12GB 内存。)

我们已经看到,与IE11相比,Edge的性能得到了极大的改善。我们也将试目以待,看Google和Mozilla能否将他们的浏览器的基准测试分数再次提高。

查看英文原文:Microsoft: Edge Performs Better than Chrome and Firefox

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

试试 by 仇 柯人

试试评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT