BT

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

微软开源新一代浏览器的JavaScript引擎核心代码

| 作者 谢丽 关注 10 他的粉丝 发布于 2015年12月15日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

近日,微软宣布开源Chakra的核心组件。Chakra是微软新一代浏览器Microsoft Edge的JavaScript引擎。相关代码将于2016年1月上传到微软的GitHub账号,项目名称为ChakraCore,遵循MIT许可协议。

Chakra是微软2008年新创建的一个JavaScript引擎,其基本构建原则是要具备现代Web应用所需要的性能特性,并能非常容易地应用于各种不断出现的场景。也就是说,Chakra需要能够快速启动和运行,提供卓越的用户体验,并充分发挥底层硬件的潜能。下面是Chakra的基本架构:

为了实现上述目标,Chakra采用一种独特的多层管道架构,包含一个解释器、一个多层架构的后台JIT编译器和一个可以并发和局部回收的标记-清除垃圾收集器。

自Chakra创建以来,JavaScript已经从一种主要用于Web浏览器的语言,成长为一种支持商店应用、服务器端应用、云服务、NoSQL数据库、游戏引擎、前端工具和IoT的语言。期间,微软一直在不断改进和优化Chakra,使它不仅可以很好地适应这些场景,而且还能在所有这些场景中提供卓越的体验。这意味着,除了吞吐能力外,Chakra还必须具备本地互操作性、良好的扩展性和在有限资源环境中执行代码时限制资源占用的能力。Chakra的解释器在可移植性方面发挥了重要作用。

现在,在Microsoft Edge浏览器之外,Chakra还应用于通用Windows应用、Azure DocumentDBCortanaOutlook.comTypeScript(做过专门优化)。微软还使Node.js可以使用Windows 10上的Chakra,从而使开发人员可以在新IoT平台Windows 10 IoT Core上使用Node.js。

随着Windows 10的发布,Chakra不仅在Microsoft Edge中提供了更好的JavaScript性能,而且在其他浏览器提供商所拥有的基准测试中,性能也有大幅提升,如下图所示:

此外,Chakra还支持大部分ECMAScript 2015(即ES6)特性,并支持部分ECMAScript提案特性,如Async FunctionsSIMD。它还支持asm.js,其团队在WebAssembly及其相关基础设施的发展中发挥了重要作用。

ChakraCore是一个全功能、自包含的JavaScript虚拟机,可以嵌入衍生产品及用于诸如NoSQL数据库、生产力软件、游戏引擎这类需要脚本语言的应用程序。如下图所示,与Chakra相比,ChakraCore主要有两点不同:一是未将私有绑定暴露给浏览器和通用Windows平台;二是用一组新的现代化诊断API取代了基于COM的诊断API。

虽然将在1月份发布的ChakraCore版本仅限于Windows,但微软承诺会将其带到其他平台。感兴趣的读者可以继续关注,在1月份正式发布的时候,微软会提供更多细节。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

只要不出一个新的浏览器就好 by tesr kinogam

别搞新的版本了

允许的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