QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

微软 JS 引擎升级:引入二段式编译过程

  • 2014-10-19
  • 本文字数:967 字

    阅读完需:约 3 分钟

微软的 Internet Explorer 团队最近详细介绍了即将在Windows 10 中出现的JavaScript 引擎所引入的变化。其中一个意义深远的变化是,在JIT(Just-in-Time)编译器中增加了一个新的阶段。

JS 引擎 Chakra最早出现在IE9 中,为Internet Explorer 以及从微软应用商店中下载的基于Web 的应用提供服务。当运行JavaScript 中函数时,Chakra 首先使用解析器,以缓慢但灵活的方式解释执行。而一旦当某个函数或循环变得“炙手可热”,Chakra 便将使用其 JIT 编译器来生成经过优化的机器代码。

在 Windows 10 中,Chakra 将增加第二个 JIT 编译器,它将填补缓慢的、解释执行的代码,与快速、经过优化的代码之间的鸿沟。这个新增的中段编译器被称为 Simple JIT(简化的 JIT),它将作为一个“足够好”的中间层,能够比 Full JIT(完整的 JIT)更快速地将代码执行从解析器中移出。微软宣称这一变化将令特定的工作负载“运行速度提升最多 30%”。

这个 Simple JIT 将不会采用复杂的优化生成代码。在大部分情况下,Simple JIT 编译代码所化的时间,将远小于 Full JIT 编译器生成高度优化的 JIT 代码所需的时间。

除微软外,其他一些浏览器早已完成了转向两段式 JIT 编译器架构的过程。Firefox 的 JS 引擎 SpiderMonkey 拥有一个解析器和两个编译器,名为 Baseline 和 IonMonkey。 Baseline 编译器最初现身于 Firefox 23,负责与 Chakra 中的 Simple JIT 编译器类似的中间步骤。而在 Google Chrome 浏览器的 V8 JS 引擎早在 2010 年就已经公布了它的两段式编译系统,不过 V8 并未引入解析器。

除了引入新的 JIT 编译器外,Chakra 现在还将把代码编译工作划分给若干后台线程。而在此之前,它只有一个后台线程。

现在,一旦发现自身运行的环境中,硬件的性能可能未被充分利用,Chakra 就能够为 JIT 编译开启若干并发的后台线程。与之相对照的,V8 引擎目前在单一一条后台线程上编译

受Web 天生条件制约,JavaScript 代码无法提前编译;因此,编译过程必须发生在客户侧。Firefox 的第一个版本提供了一套JS 原生代码JIT 编译器( 3.1 版);Internet Explorer 在 IE9 中才引入该特性;而 V8 则在问世之日起就采用这样的 JIT 编译器。

微软目前将全新 Internet Explorer 作为 Windows 10 技术预览版中的一部分对外发布。

查看英文原文: Microsoft’s JavaScript Engine Learns New Tricks For Windows 10

2014-10-19 13:081795
用户头像

发布了 256 篇内容, 共 74.7 次阅读, 收获喜欢 10 次。

关注

评论

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

百度智能云一念:视频模型D&S-AI Video,秒级生成营销视频

爱AI的猫猫头

人工智能 音视频 大模型 办公效率 AI视频

阿里云数智服务创新挑战赛总决赛铜奖比赛攻略_NJUSME队

阿里云天池

场景题:如何提升Kafka效率?

王磊

体验了下豆包MarsCode编程助手,惊艳到我了!

左诗右码

AI

大模型营销战,“砸钱”能缓解商业化焦虑?

趣解商业

百度 腾讯 互联网 大模型

源于清华的开源时序数据库IoTDB刷新世界纪录

Apache IoTDB

JNPF低代码开发平台如何助力传统制造业破茧成蝶

EquatorCoco

低代码

openGauss- 索引推荐

Gauss松鼠会

opengauss

9月7-8日,Rust China Conf 2024 来啦!

Mike Tang

开源 rust 上海 rust conf rust开发者大会

合资新能源价值新标准 MAZDA EZ-6领衔亮相2024成都国际车展

Geek_2d6073

一站式解决方案:10款项目型企业系统选购指南

爱吃小舅的鱼

项目管理

【vue3】详解单向数据流,大家千万不用为了某某而某某了

快乐非自愿限量之名

JavaScript vue.js 前端

实战演练:利用京东API一键抓取商品详情

技术冰糖葫芦

api 网关 API Explorer API 策略

免费高效!3步实现Llama3模型远程访问与协作

贝锐

AIGC Llama3 贝锐

AI自动化副业创收班手把手带你提升副业收益

霍格沃兹测试开发学社

视频云流化是什么?有哪些好处

3DCAT实时渲染

云流化 云流化PaaS平台 实时渲染云流化

前波士顿咨询Platinion董事总经理陈果加入望繁信科技

望繁信科技

流程挖掘 流程资产 流程智能

JNPF再进化,低代码革命让数字化无处不在

不在线第一只蜗牛

低代码

【攻略】第三届数据库大赛创新上云性能挑战赛-高性能分析型查询引擎赛道-冠军

阿里云天池

AI+营销:AI赋能企业大客户经营更高效、更智能

用友BIP

智谱清言 App 面向 C 端开放 AI 视频通话服务;谷歌 GameNGen:神经网络驱动的实时游戏引擎丨RTE 开发者日报

声网

人社大赛算法赛场解题思路分享+冠军+破灭刀锋

阿里云天池

揭秘| 用友坚持做大模型的原因

用友BIP

多链钱包系统开发(开发原理)丨多链钱包开发源码模式

V\TG【ch3nguang】

In-depth analysis IPQ5332 vs IPQ9570 WiFi7 motherboard CPU

wifi6-yiyi

最高等级!腾讯云AI代码助手获中国信通院代码大模型评估4+级

Geek_2d6073

如何判断全面预算和EPM软件架构是否符合技术规范?

智达方通

数字化转型 多维数据库 企业绩效管理系统 管理会计信息化 新ERP

用友YonData如何刷新企业数据管理与应用新高度?

用友BIP

论低代码平台在业务系统中的多种应用形态

快乐非自愿限量之名

低代码 业务开发

天翼云HBlock:打造高效、安全、可扩展的云存储体验

百里丶落云

磁盘 数据库· HBlock #天翼云 #HBlock

打造高效农业项目 10款农业建设管理系统购买指南

爱吃小舅的鱼

项目管理 农业

微软JS引擎升级:引入二段式编译过程_JavaScript_David Iffland_InfoQ精选文章