【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

微软开源新一代浏览器的 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:002998
用户头像

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

关注

评论

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

大模型数据集:构建、挑战与未来趋势

来自四九城儿

DAPP算力挖矿系统开发丨合约技术开发

l8l259l3365

如何通过营销策略和资源平台提升API竞争力

幂简集成

API 产品运营 营销模式 差异化

用 2 种方法取消 Axios 请求,掌控请求的主动权

Liam

JavaScript 程序员 前端 axios 网络请求

小程序中添加用户隐私保护的操作方法

Geek_2305a8

离散元分析有什么用?仿真软件介绍

智造软件

CAE CAE软件 离散元

图控软件大盘点 国内外顶级SCADA软件整理

2D3D前端可视化开发

组态软件 工业自动化 SCADA HMI 图控软件

身为 Go 程序员,我为啥更喜欢用 Zig?

树上有只程序猿

Go 编译器 Zig语言

Mac电脑图片处理必备:Photoshop 2021直装激活版

mac大玩家j

Mac软件 图片编辑工具 图片处理软件

MySQL安全最佳实践指南(2024版)

这我可不懂

MySQL 数据库

行外人提问:CST软件仿真能够解决哪些问题?

思茂信息

cst cst电磁仿真 cst仿真软件

云图说 | 图解制品仓库服务CodeArts Artifact

华为云开发者联盟

华为云 华为云开发者联盟 华为云CodeArts 华为云云图说

社交泛娱乐出海,市场 & 赛道、投放 & 变现的最新干货分享

融云 RongCloud

社交 泛娱乐 市场 变现 梳理

直播预告丨电商内容营销的AIGC式进化

京东科技开发者

电商 大模型 AIGC

云服务器的安全防护:技术与策略全面解析

一只扑棱蛾子

云服务器

细说SQL与ETL之间的小秘密

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

亚马逊云科技推出五项Amazon SageMaker新功能

财见

B 站基于 StarRocks 构建大数据元仓

StarRocks

数据库 StarRocks 数据分析、

【写作训练营打卡|02】

终身学习 #学习

免费SSL,阿里云免费SSL证书申请及如何宝塔更换SSL证书

JaneYork

阿里云 ssl 宝塔面板 免费SSL证书 宝塔

FPS和SFTP的速度哪个更快?区别在哪里?

镭速

ftp sftp 传输大文件

什么是微信小程序WXSS ?

Geek_2305a8

7 种查询策略教你用好 Graph RAG 探索知识图谱

NebulaGraph

知识图谱 LLM rag

公有云频繁宕机,从上云到下云备份如何实现?

财见

XPET宠物游戏系统开发技术

薇電13242772558

gamefi

可视化软件开发工具——JNPF

互联网工科生

低代码开发 可视化开发 JNPF

过去 100 天,发生了啥?丨 RTE 开发者日报 Vol.100

声网

Vue 应用程序性能优化:代码压缩、加密和混淆配置详解

亚马逊云科技携手埃森哲助力默沙东利用云技术缩短药物发现时间

财见

常用的企业加速公司内部大文件传输速度方法

镭速

大文件传输 传输大文件 内部大文件传输

大模型数据集:突破边界,探索未来

来自四九城儿

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