在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

JavaScript 引擎大战:Google 提出 StrongMode 和 SoundScript 议案,增强 V8 性能

  • 2015-03-18
  • 本文字数:1232 字

    阅读完需:约 4 分钟

JavaScript 引擎性能大战硝烟迷漫,Chrome V8 引擎团队宣布了一个新的计划,在这个计划里他们介绍了两个新的虚拟机概念:强化模式(StrongMode)和强化脚本(StrongScript)。

强化模式是 ES5 严格模式(strict mode)的一个扩展,在这个模式下只允许使用性能可预测的 JavaScript 特性。它是 JavaScript 语言的一个子集,在允许的情况下关闭妨碍虚拟机充分优化代码的部分特性。

举个例子,强化模式下的其中一个限制是数组不能有空洞。在一篇描述 SoundScript 的博客文章中,Dr. Axel Rauschmayer 说:

如果数组没有空洞,它们的元素就会被存储在连续内存中并且可以被索引访问,如果数组一旦有了空洞,就必须使用由索引到元素的映射。

所以,只要消除数组空洞就可以提升性能。如果想要使用这个模式,开发者需要在代码的最前面加入如下声明:

复制代码
use strong

按照强化模式规范编写的 JavaScript 仍然可以在其它浏览器中运行,启用强化模式意味着 V8 会进行额外的性能优化,当你使用了不被建议的代码时会抛出错误提示。Mozilla 的研究员, Emscripten 的负责人 Alon Zakai 对此感到非常担忧

这让我感到很困扰,如果它正常运行,那么没问题,但是如果遇到增强模式不推荐使用的代码,那么事情就大有不同,其它浏览器可能以不同的方式执行。当然,如果想避免这个问题发生,强化模式需要抛出 警告(warnings) 而非 错误(errors),作为规范,仅提示人们他们可以优化的内容就足够了。

在一个有潜力成为 JavaScript 重大改变的相关议案中,SoundScript 旨在向运行时 JavaScript 中添加面向用户的类型。JavaScript 的其中一个特性就是它的动态类型系统,然而随着应用规模的增加,为了满足运行大型项目的需求,像 TypeScript 一样的外部类型系统如雨后春笋般涌现。

事实上,SoundScript 将会基于 TypeScript 实现一套尽可能与 TypeScript 相似的标准,V8 团队表示在虚拟机中支持强类型会让它可以使用类型信息以尽早地积极优化。

Hacker News 上的一个讨论中,JavaScript 的创始人 Brendan Eich,希望 Chrome 在这些提案上有所作为:

V8 团队承诺与 TC39 一起为语义化工作并且开源这些代码,这么做大有裨益。最糟糕的情况是,这会变成另一个 Chrome 掌权的游戏,变成另一个 Chrome 的权力场。但是所有迹象都表明,到目前为止事情并没有像这样发展下去。

Google 声称强化模式和 SoundScript 暂时是实验性的,像这样的新特性在加入标准之前还有很长的路要走。ECMAScript 负责的标准核心 TC39 在形成新标准之前,像 SoundScript 这样的提案还需要充分地实践。

我们鼓励开发者阅读 强化模式的提案,开发者们可以在命令行中使用如下 flag 打开 Chrome canary:

复制代码
--js-flags="--strong-mode"

查看英文原文: http://www.infoq.com/news/2015/03/Google-StrongMode-SoundScript-V8


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-18 00:083213
用户头像

发布了 63 篇内容, 共 137.5 次阅读, 收获喜欢 38 次。

关注

评论

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

平凯数据库与新开普完成互认证,技术融合重构智慧校园核心体验

TiDB 社区干货传送门

教育 合作伙伴 数据库原理

2025年YashanDB数据库技术发展趋势与展望

数据库砖家

2025年YashanDB数据库全球市场预测及机遇

数据库砖家

平凯数据库与东软教育达成技术互认证 共筑教育数字化转型新基石

TiDB 社区干货传送门

教育 合作伙伴 数据库原理

平凯数据库TEM敏捷模式在openEuler-22.03-LTS 官方原版操作系统安装部署(车联网场景)

TiDB 社区干货传送门

平凯数据库敏捷模式

平凯数据库与鼎驰科技完成方案互认证,共助医院数智化管理升级

TiDB 社区干货传送门

医疗 合作伙伴

平凯数据库敏捷模式体验分享

TiDB 社区干货传送门

平凯数据库敏捷模式

2025年YashanDB的具体发展趋势

数据库砖家

2025年YashanDB数据库技术创新趋势展望

数据库砖家

八年长跑,单表5TB无压力!某互联网银行用TiDB支撑600T核心数据的降本增效之路

TiDB 社区干货传送门

互联网 金融 银行 互联网金融

信创数据库选型|平凯数据库敏捷模式对标 MySQL数据库试用体验

TiDB 社区干货传送门

平凯数据库敏捷模式

安装便捷,才是好用的开始|平凯数据库敏捷模式体验分享

TiDB 社区干货传送门

平凯数据库敏捷模式

2025年YashanDB数据库技术发展的潜在趋势

数据库砖家

2025年YashanDB数据库技术发展趋势前瞻

数据库砖家

AI 时代智能制造的数据底座解决方案——基于平凯数据库的敏捷、智能与可信赖实践

TiDB 社区干货传送门

智能制造 / 汽车

OpenAI推出Apps SDK,你的企业App跟上了吗?

FinClip

AI App

2025年YashanDB数据库行业发展趋势与未来展望

数据库砖家

2025年YashanDB数据库功能更新及展望

数据库砖家

2025年YashanDB数据库关键技术创新方向预测

数据库砖家

平凯数据库敏捷模式实践评估:在线DDL、存储压缩和故障自愈方面的表现令人印象深刻

TiDB 社区干货传送门

平凯数据库敏捷模式

TiDB 分布式数据库学习路线图,一场投资未来的旅程,零基础也能冲!

TiDB 社区干货传送门

技术趋势 数据库原理 8.x 实践 部署与初始化 MySQL 迁移

从MySQL迁移到 TiDB 平凯数据库敏捷模式的落地测试记录|用接近单机的成本,拿到了分布式的全套能力

TiDB 社区干货传送门

平凯数据库敏捷模式

YashanDB数据库在企业应用中的创新趋势

数据库砖家

​平凯数据库敏捷模式:助力数字政务数据中台升级的“新引擎”​​

TiDB 社区干货传送门

测试 国产化替代 TEM 试用 MySQL 迁移 平凯数据库敏捷模式

TiDB 7.1 多租户在中泰证券中的应用

TiDB 社区干货传送门

金融 资源管理

平凯数据库与证通股份完成方案互认证,共筑证券 IT 合规治理新基石

TiDB 社区干货传送门

合作伙伴 证券 / 基金

金融行业工作者使用 TiDB 敏捷模式的超预期体验:成本优势、开发效率、运维便捷

TiDB 社区干货传送门

平凯数据库敏捷模式

TiDB 平凯数据库敏捷模式使用体验及总结:批量写入效率和压缩比高,安装部署简洁方便!

TiDB 社区干货传送门

2025年YashanDB数据库发展趋势及行业影响分析

数据库砖家

2025年YashanDB数据库市场格局与机遇展望

数据库砖家

小红书数据库资源规模飙升超 100% 背后:数十套 TiDB 集群(过万核)助力小红书实现保稳、降本、增效三重奏

TiDB 社区干货传送门

互联网 数据库架构选型

JavaScript引擎大战:Google提出StrongMode和SoundScript议案,增强V8性能_JavaScript_David Iffland_InfoQ精选文章