AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

【量化】量化交易入门系列6:量化交易学习书籍推荐(二)

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

前端开发之动态管理Nginx集群的方法

@零度

nginx 前端开发

工具 | 如何对 MySQL 进行 TPC-C 测试?

RadonDB

MySQL RadonDB

在Spark Scala/Java应用中调用Python脚本,会么?

华为云开发者联盟

Python spark python脚本 Spark Scala Java应用

巧用Amazon PrivateLink——轻松访问私有终端节点Amazon S3

亚马逊云科技 (Amazon Web Services)

网络

霸屏综艺,牵手明星,扩列神器皮皮APP的出圈始末

联营汇聚

从四种时序数据库选型中脱颖而出,TDengine在工控领域边缘侧的应用

TDengine

数据库 大数据 tdengine 物联网

斯图飞腾数据分析平台Stratifyd获评“2021大数据产业创新服务产品”

InfoQ_967a83c6d0d7

中山市政务服务数据管理局党组书记叶永忠:积极构筑智慧联接新底座,打造中型智慧城市标杆

InfoQ_967a83c6d0d7

3个重点,20个函数分析,浅析FFmpeg转码过程

奔着腾讯去

音视频 WebRTC ffmpeg RTMP RTSP

Mysql索引

zdd

MySQL

Linux云计算好学吗?Linux云计算运维学习资料 vim编辑器和恢复ext4下误删文件

学神来啦

万字详解 Spark 数据倾斜及解决方案

五分钟学大数据

spark 1月月更

openGauss 助力邮储银行分布式新核心迈向智能运维时代

助力产教融合,夯实数据库产业人才基座!openGauss社区分委会正式成立

您有一份Microsoft Office 365技能宝典等待签收

淋雨

Office 365 office办公软件

workflow 之 Prefect 基本用法(qbit)

qbit

工作流 pipeline workflow 数据流

效果提升28个点!基于领域预训练和对比学习SimCSE的语义检索

百度大脑

人工智能

MySQL高级特性篇教程

编程江湖

MySQL

低代码实现探索(十四)工程化思想提高项目质量与可维护性

零道云-混合式低代码平台

为什么零售业需要借助CRM系统蓬勃发展

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理软件

基于实例数据详解准确率和召回率

华为云开发者联盟

数据集 AUC 信息检索 准确率 召回率

【网络安全】你必须知道的几个网络安全概念

行云管家

运维 网络安全 防火墙 IT

开源demo| 智慧协同demo升级——协同更直观方便

anyRTC开发者

音视频 白板 智慧协同 开源demo 远程协助

风口上的“低代码”,是时候来系统学一学了!

博文视点Broadview

面试官惊叹,好小子!你这多线程基础可以啊!

XiaoLin_Java

1月月更

skywalking核心概念

淡泊明志、宁静致远

使用 Simple Replay 实用程序简化 Amazon Redshift RA3 迁移评估

亚马逊云科技 (Amazon Web Services)

mad

Karpenter : 新一代 Kubernetes auto scaling 工具

亚马逊云科技 (Amazon Web Services)

网络

linux系统管理与自动化运维工具用哪款好?

行云管家

Linux 运维 IT运维 自动化运维

低代码实现探索(十五)安全检查报告提高低代码数据安全性

零道云-混合式低代码平台

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