JS 引擎 V8 7.2 Beta 发布,平均解析时间百分比降低到 7.5%

2018 年 12 月 21 日 前端大全

(给前端大全加星标,提升前端技能


转自:开源中国

V8 JavaScript 引擎 7.2 已发布,开发团队表示目前尚处于 Beta 版阶段,正式版将会于几周后和 Chrome 72 Stable 一起推出。

V8 v7.2 提供了很多面向开发者的新特性,下面我们不妨简单看一下。

内存

现在,在 ia32 架构中默认支持并启用嵌入式内置函数(Embedded builtins)。

性能

JavaScript 解析

平均而言,网页花费了 V8 启动时所用时间的 9.5% 来解析 JavaScript。因此,7.2 版本专注为 V8 提供最快的 JavaScript 解析器,全面提高解析速度。从 7.0 开始,桌面上的解析速度提高了大约 30%。下图显示了过去几个月 Facebook 加载基准测试的显着改进。

Facebook.com 上的 V8 解析时间(越低越好)

开发团队在不同场合都对解析器进行了优化,下图显示了几个热门网站上相对于最新 7.2 版本的改进。

总而言之,最近的改进将平均解析时间百分比从 9.5% 降低到 7.5%,从而加快了加载时间并提高了响应速度。

async/await

V8 v7.2 带来了更快的 async/await 实现,并在默认情况下启用。同时,开发团队制定了一个规范提案,目前正在收集 Web 兼容性数据,以便将更改正式合并到 ECMAScript 规范中。

WebAssembly

开发团第表示,在分析了许多 WebAssembly 基准测试后,最后选择通过它们来指导顶级执行层中的代码生成。特别是,V8 v7.2 在优化编译器的调度程序和后端循环旋转(loop rotation)中启用了节点拆分(node splitting)。此外,还改进了封装器缓存并引入了自定义封装器,以减少调用导入的 JavaScript 数学函数的开销。最后,开发团队设计了对寄存器分配器的更改,以改善许多代码模式的性能,这些代码模式将在更高版本中出现。

JavaScript 语言特性

V8 7.2 新增对公共 class 字段(public class fields) 的支持,例如下面的旧写法:

class Animal {
  constructor(name) {
    this.name = name;
  }
}
class Cat extends Animal {
  constructor(name) {
    super(name);
    this.likesBaths = false;
  }
  meow() {
    console.log('Meow!');
  }
}

现在可以这样写:

class Animal {
  constructor(name) {
    this.name = name;
  }
}
class Cat extends Animal {
  likesBaths = false;
  meow() {
    console.log('Meow!');
  }
}

计划在未来的 V8 版本中支持私有类字段(private class fields)。

详细更新内容请查看发布公告:

https://v8.dev/blog/v8-release-72


推荐阅读

(点击标题可跳转阅读)

10 分钟理解 JS 引擎的执行机制

从谷歌 V8 JS 引擎学到的优化经验

V8 内存分配与垃圾回收



觉得本文对你有帮助?请分享给更多人

关注「前端大全」加星标,提升前端技能

登录查看更多
0

相关内容

JavaScript 是弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
236+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
162+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
107+阅读 · 2020年1月2日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
干货|全文检索Solr集成HanLP中文分词
全球人工智能
4+阅读 · 2017年8月27日
NLP自然语言处理(一)——jieba分词(R vs. python)
乐享数据DataScientists
6+阅读 · 2017年1月15日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
5+阅读 · 2018年1月30日
Arxiv
12+阅读 · 2018年1月12日
Arxiv
23+阅读 · 2017年3月9日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
236+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
162+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
107+阅读 · 2020年1月2日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
相关资讯
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
干货|全文检索Solr集成HanLP中文分词
全球人工智能
4+阅读 · 2017年8月27日
NLP自然语言处理(一)——jieba分词(R vs. python)
乐享数据DataScientists
6+阅读 · 2017年1月15日
Top
微信扫码咨询专知VIP会员