50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2015-12-14
  • 本文字数:1177 字

    阅读完需:约 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 DocumentDB Cortana Outlook.com TypeScript (做过专门优化)。微软还使Node.js 可以使用Windows 10 上的Chakra ,从而使开发人员可以在新IoT 平台 Windows 10 IoT Core 上使用 Node.js。

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

此外,Chakra 还支持大部分 ECMAScript 2015(即 ES6)特性,并支持部分 ECMAScript 提案特性,如 Async Functions SIMD 。它还支持 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 读者交流群(#2))。

2015-12-14 18:003603
用户头像

发布了 1008 篇内容, 共 437.6 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

大型命令行工具的设计技巧-以 docker 和 kubectl 为例

baiyutang

Go 编程

技术干货丨电子制造新突破!Inspire PolyFoam 三大核心工艺新功能,为产品可靠性保驾护航

Altair RapidMiner

人工智能 AI 制造业 仿真 CAE

设备点检 设备维护经验总结(7)

万里无云万里天

工业 设备维护 工厂运维 设备点检

2025网安周丨“AI+安全”守护数智未来,绿盟科技精彩亮相昆明

科技热闻

户外LED屏幕的IP等级是什么?

Dylan

广告 广告业 LED LED display LED屏幕

跨境电商如何通过海外舆情监测优化本地化策略

沃观Wovision

跨境电商 出海企业 沃观Wovision 舆情监测系统 海外舆情监测

自控学习历程系列 自控维护经验总结(24)

万里无云万里天

工厂运维

鸿蒙应用开发从入门到实战(八):ArkTS自定义组件语法

程序员潘Sir

鸿蒙 HarmonyOS

BeeWorks:私有化部署即时通讯,铸就企业数字安全基石

BeeWorks

即时通讯 IM 私有化部署

区块链U卡APP的开发流程

北京木奇科技有限公司

区块链开发 软件外包公司 web3开发

从AI代码生成,到真正的开发伙伴关系

伤感汤姆布利柏

智源研究院黄铁军:2015、2030、2045,AI促进可持续发展

智源研究院

搜索百科(1):Lucene —— 打开现代搜索世界的第一扇门

极限实验室

搜索引擎 lucene elasticsearch 开源 搜索百科

大数据-100 Spark DStream 转换操作全面总结:map、reduceByKey 到 transform 的实战案例

武子康

Java 大数据 flink spark 分布式

快速上手Cursor,让AI替你敲键盘

测试人

软件测试

一块好屏的“基因”报告:解码高端OLED背后的品质密码

Alter

大庆等保测评:完整流程拆解与核心要点梳理

等保测评

拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南

vivo互联网技术

前端 three.js

亚马逊商品列表API开发指南

tbapi

亚马逊API 亚马逊商品数据采集 亚马逊数据分析 亚马逊商品列表api

GitHub 上 Star 数量前 10 的开源项目管理工具

NocoBase

GitHub 开源 项目管理 低代码 项目管理系统

哈尔滨等保测评流程:从定级到合规的关键之路

等保测评

低代码“批量审批/审批意见”实操攻略,5 分钟上手

引迈信息

程序员工作新趋势已到!担心AI会抢岗位?

秃头小帅oi

No003:记忆与个性化——AI 应该如何“记住”用户?

lsycang

技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?

poemyang

分布式 分布式系统

内网聊天软件有什么用,企业为什么要选择内网IM?

BeeWorks

即时通讯 IM 私有化部署

CST软件如何获得RCS曲线均值

思茂信息

rcs 仿真软件 电磁仿真 CST软件 CST Studio Suite

No002:共同进化——从用户反馈中构建更智能的未来

lsycang

转化率提升300%,火山引擎Data Agent以“一客一策”突破企业营销增长瓶颈

字节跳动数据平台

鸿蒙5.0应用开发——V2装饰器@Monitor的使用

高心星

鸿蒙 装饰器 HarmonyOS5.0 V2装饰器

PSQLException: ERROR: column “xxxxx“ does not exist

刘大猫

人工智能 机器学习 算法 数据分析 数据分析数据挖掘

微软开源新一代浏览器的JavaScript引擎核心代码_JavaScript_谢丽_InfoQ精选文章