写点什么

V8 提升异步性能:JavaScript 一大痛点得以解决

  • 2019-01-12
  • 本文字数:844 字

    阅读完需:约 3 分钟

V8提升异步性能:JavaScript一大痛点得以解决

V8 JavaScript 团队宣布优化异步函数和 promises 对象。团队还提升了异步代码的调试体验,这也是 JavaScript 开发人员的共同痛点。

正文

V8 JavaScript 团队宣布优化了异步函数和promises对象。团队还提升了异步代码的调试体验,这也是 JavaScript 开发人员的共同痛点。


在 ES2015 中引入了 promises,在之后引入了异步函数,ES2018 中引入的异步迭代让编写异步代码变得比使用回调来的更为高效。


但直到最近,这些新功能使用的优势还没有得到很好的体现。Google V8 工程师 Maya Lekova 和 Benedikt Meurer 解释称:


我们非常努力地提升了性能,使得 V8 的性能从 v5.5 (Chrome 55 & Node.js 7)到 v6.8 (Chrome 68 & Node.js 10)上了一个台阶。现在的性能水平可以保证开发人员放心地使用这些新的编程范例而不需考虑速度问题。Promise.all 的性能水平也提升了 8 倍。


V8 团队还探索了真实世界的源代码性能案例,研究了使用 promises 和异步函数的中间件框架,例如 hapi、koa 和 trek。随着 V8 最近的变更,这些框架的性能也显著提升。


V8 中的几项变更促使了异步性能的提升,包括全新的优化编译器 TurboFan,全新的垃圾收集器 Orinoco,将 GC 过程从主线程中移出,以提升请求处理的过程。另外,Node.js 8 中的一个错误导致有些情况下等待跳过微拍(microticks)的情况发生。


由于提升了性能,需要用一些建议的补丁来改进异步函数规范,这可以提高 V8 以及所有 JavaScript 引擎的性能。这些变更包括移除两个额外的微拍,并移除了异步函数的 throwaway promise。


随着最近对于 V8 源代码的更新,以及对异步函数规范的计划改进,async 和 await 由于降低了一步函数的开销,因此也第一次比 promise 代码表现得更好。


为了让调试变得更加简单,Chrome DevTools 改进了堆跟踪,包括堆跟踪的异步部分。


V8 是 Google 推出的开源 JavaScript 引擎,支持 Chrome、基于 Chrome 的浏览器以及 Node.js。V8 遵循 BSD 许可证。欢迎开发人员根据Chrome代码标准V8 GitHub项目下对它作出贡献


查看英文原文V8 Improves Async Performance


2019-01-12 08:0010089
用户头像

发布了 218 篇内容, 共 79.4 次阅读, 收获喜欢 76 次。

关注

评论

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

揭开MySQL索引神秘面纱

咔咔

MySQL 索引

你对JVM垃圾收集器了解多少?面试官夺命13问谁碰谁不迷糊啊!

北游学Java

Java JVM 垃圾回收

Wireshark数据包分析学习笔记Day28

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

霸榜GitHub!银四匠心之作:拼多多/蚂蚁/百度面经分享

Java 编程 程序员 架构 面试

优秀程序员必备技能之如何高效阅读源码

中间件兴趣圈

方法论 源码解读

如何保护您的SaaS应用程序?

龙归科技

网络安全 SaaS 远程工作 单点登录

在华为云专属月中,寻觅互联网更需要的云味道

脑极体

我叫小M,立志建立MySQL帝国。

yes

MySQL

Python OpenCV 泛洪填充,取经之旅第 21 天

梦想橡皮擦

Python OpenCV 4月日更

webrtc 开启新特性

webrtc developer

学习笔记

山@支

如何避免成为一个油腻的中年猥琐男?

石云升

读书笔记 中年 28天写作 4月日更

知乎高赞:为什么同样是分布式架构的Kafka需要Leader而Redis不需要

中间件兴趣圈

分布式 raft 一致性 数据分片

Airtest入门及多设备管理总结

行者AI

自动化测试

解Bug之路-主从切换”未成功”?

无毁的湖光

数据库 主从环境

众盟科技:直播浪潮下,医美行业的私域营销之变

脑极体

2021 优质前端资源精选 —— 持续更新,欢迎共建

清秋

大前端 教程 资源 社区 4月日更

starforce源码解读二:游戏入口

风翱

Unity 源码解读 4月日更

7.1 Go语言从入门到精通:Cobra介绍

xcbeyond

cobra Go 语言 4月日更

百度联合研究成果登上《自然》子刊 推动人才管理大数据智能化转型

百度大脑

百度 AI

Edge 修改使用的默认搜索引擎

HoneyMoose

聪明人的训练(八)

Changing Lin

4月日更

上来就问MySQL事务,瑟瑟发抖...

咔咔

MySQL 事务

MVCC:听说有人好奇我的底层实现

咔咔

MySQL MVCC

来学Python啦,用Python详细讲解温度转换器

Bob

Python Python 游戏编程 4月日更

容器&服务: ClickHouse与k8s架构

程序员架构进阶

Kubernetes Prometheus Clickhouse 28天写作 4月日更

c 语言思维地基搭建(vis2013编译+第一个c语言程序)

-jf.

4月日更

从零开始写游戏服务器①:前期了解

Integer

c

webrtc stream,source,track

webrtc developer

MySQL查询优化必备

咔咔

MySQL 查询优化

飞桨与宸曜科技完成兼容性认证

百度大脑

认证 飞桨

V8提升异步性能:JavaScript一大痛点得以解决_语言 & 开发_Dylan Schiemann_InfoQ精选文章