【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 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:002987
用户头像

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

关注

评论

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

保姆级教程!如何在 Anolis 8 上构建基于 Nydus 和 Dragonfly 的镜像加速解决方案?

OpenAnolis小助手

Linux 开源 镜像 解决方案 龙蜥社区

SoapUI参数传递操作详解

Liam

Postman 开发工具 接口测试 soapui

字节跳动副总裁杨震原:好的AI基础设施,如何激发工程师创造力?

字节跳动技术范儿

机器学习 字节跳动 算法 模型训练 算法工程师

跨系统数据一致性问题解决方案汇总

架构精进之路

系统架构 数据一致性 三周年连更

如何快速在手机中查看UDID,无需itunes、itools

Kyligence CTO|消除技术门槛,人人可用的敏捷数据工具

Kyligence

数据分析 指标平台

Go语言并发编程利器(一):如何正确使用Channel

Jack

华为云网站安全解决方案:守护企业数字化转型之路,提升业务效率与安全

YG科技

数据库、

【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http开发变得如此简单

洛神灬殇

Java HTTP 4月日更 Unirest

2023-04-18:ffmpeg中的hw_decode.c的功能是通过使用显卡硬件加速器(如 NVIDIA CUDA、Intel Quick Sync Video 等)对视频进行解码,从而提高解码效

福大大架构师每日一题

golang 音视频 ffmpeg 福大大

华为云网站安全解决方案:守护您的网站,让安全无忧

YG科技

手把手教程 | 5分钟用轻量云主机搭建一个JupyterLab

京东科技开发者

Web 云主机 jupyterlab 企业号 4 月 PK 榜

软件测试/测试开发丨PageObject 设计模式

测试人

软件测试 自动化测试 测试开发 pageobject

汇量科技使用倚天710云实例,高效处理大流量广告请求

云布道师

阿里云

开心档之C++ STL 教程

雪奈椰子

iOS MachineLearning 系列(2)—— 静态图像分析之矩形识别

珲少

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

EOSdreamer111

文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题

福大大架构师每日一题

福大大 ChatGPT 文心一言

回顾2022:Web性能方面有哪些新功能

南城FE

性能优化 前端

接口测试利器:AREX

AREX 中文社区

测试 自动化测试 接口测试 回归测试

苹果怎么查看UDID iPhone/iPad查看UDID教程【详解】

雪奈椰子

一文掌握 Go fmt 标准库常用方法的使用

陈明勇

Go golang 三周年连更 输入输出 fmt

基于TCP协议的Socket通信

攻城狮Wayne

TCP协议 Socket请求 三周年连更

HTTP事务的时延

阿泽🧸

三周年连更 HTTP时延

开心档之MySQL 序列使用

一文详解 PoseiSwap,Nautilus Chain 上的首个 DEX

股市老人

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

引迈信息

人工智能 AI 低代码 ChatGPT JNPF

REST vs SOAP:两种 Web 服务协议的分析

Apifox

网络协议 Rest API soap web 服务

Vue3 使用 Teleport 封装 一个 Dialog

程序员海军

Vue Vue 3 三周年连更

FastAPI 快速开发 Web API 项目: 模板和 Jinja 介绍

宇宙之一粟

Python FastApi 三周年连更 Jinja2

华为云:网络安全愈发重要,企业该如何保障自身业务安全?

YG科技

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