硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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:083093
用户头像

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

关注

评论

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

ODPS 十五周年实录 | Data + AI,MaxCompute 下一个15年的新增长引擎

阿里云大数据AI技术

Python 阿里云 pandas MaxCompute ODPS

腾讯内部测试管理工具揭秘:让用例"活"起来

优测云服务平台

测试管理工具

AI测试平台进阶:多模态模型对比评测实战解析

测试人

软件测试

ETL中的数据质量评估与监控

谷云科技RestCloud

数据库 数据处理 数据安全 ETL ETL数据集成平台

一个平台让开发效率提升90%?看看中小企业如何靠iPaaS完成数字化转型

谷云科技RestCloud

数据处理 集成平台 ipaas

超简单!手把手教你玩转ClaudeCode,无魔法不会员!

王磊

你在用的内网穿透服务随时可能被关停?唯一方案在这里!

科技热闻

【跨国数仓迁移最佳实践7】基于MaxCompute多租的大数据平台架构

阿里云大数据AI技术

MaxCompute BigQuery

蓝队网络流量分析脚本:自动化威胁检测与防御利器

qife122

网络安全 流量分析

阿里云 Milvus 节省计划来袭:4 折抵扣按量账单,59 元起玩转向量检索!

阿里云大数据AI技术

BeeWorks:企业级局域网即时通讯软件

BeeWorks

即时通讯 IM 私有化部署

@all,文心快码与你相约8月28日云智大会!

Comate编码助手

AI 编程 文心快码 文心快码Zulu 2025百度云智大会

震坤行商品列表API秘籍!轻松获取商品列表数据

tbapi

震坤行API 震坤行商品详情API 震坤行商品数据采集

荣耀远航计划丨2025上半年激励成果一览

荣耀开发者服务平台

荣耀开发者服务平台 荣耀HONOR 荣耀远航计划

ETL与iPaaS的融合方案:加速数据集成流程

谷云科技RestCloud

数据处理 API ETL 数据集成平台 ipaas

IT故障响应慢?ManageEngine卓豪助您3步实现问题管理!

ServiceDesk_Plus

ManageEngine卓豪

京东工业商品详情API秘籍!轻松获取商品详情数据

tbapi

京东工业数据采集 京东工业商品详情API 京东工业API

用户访问权限审查最佳实践

运维有小邓

AD域 AD域管理

解析 vLLM 架构及源码系列:模型执行过程

Jason黄

vLLM源码

技术解读 | OceanBase高并发场景下的性能保障

老纪的技术唠嗑局

性能优化 oceanbase

性能瓶颈定位更快更准:ARMS 持续剖析能力升级解析

阿里巴巴云原生

阿里云 云原生 Arms

不增加 GPU,首 Token 延迟下降 50%|LLM 服务负载均衡的新实践

阿里巴巴云原生

阿里云 gpu 云原生 Higress

使用Bright Data API轻松构建LinkedIn职位数据采集系统

Leo

中国通信工业协会城乡建设数字化专业委员会一行到访融云

融云 RongCloud

文心快码Zulu:项目级智能脚手架轰然降临

Comate编码助手

AI辅助编程 AI 编程 文心快码 文心快码Zulu

国内好用的API网关推荐:技术选型与企业实践指南

谷云科技RestCloud

API 数据安全 API网关 集成平台 ipaas

内网环境的即时通讯软件,企业用应该选哪款?

BeeWorks

即时通讯 IM 私有化部署

拥抱 AI 原生!8月29日深圳,企业实践工作坊火热报名中

阿里巴巴云原生

阿里云 云原生

阿里云 ECS 可观测性最佳实践

观测云

阿里云

好用的思维导图网页版有哪些?这8个导图软件榜上有名!

职场工具箱

AI 思维导图 办公软件 思维导图软件 AI生成思维导图

实时平台Flink热更新技术——实现不停机升级!

袋鼠云数栈

flink sql

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