写点什么

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

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

关注

评论

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

AOP的姿势之 简化 MemoryCache 使用方式

八苦-瞿昙

aop

北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!

小傅哥

小傅哥 技术人 打工人 七日更 落户

JDK、JRE、JVM,是什么关系?

小傅哥

jdk JVM 小傅哥 七日更 jre

模块分解总结

Mars

Hadoop编程实战:HDFS API编程

罗小龙

Java 大数据 hdfs 编程 实践

关于微服务架构

落朽

13张图彻底搞懂分布式系统服务注册与发现原理

爱笑的架构师

微服务 服务注册与发现 七日更

Mybatis【11】-- Mybatis Mapper动态代理怎么写?

秦怀杂货店

mybatis mybatis源码

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之彩蛋2前言

数列科技杨德华

全链路压测 七日更

架构师训练营:通达同城快递架构设计文档

9527

MGR集群相关简介

Simon

MySQL 七日更

XRP瑞波币软件系统开发|XRP瑞波币APP开发

系统开发

最近一些让我颇有感触的话

Bruce Talk

随笔

设计模式【1.3】-- 为什么饿汉式单例是线程安全的?

秦怀杂货店

单例模式

工具词典:PARA方法论

lidaobing

PKM Tiago Forte PARA 28天写作

讨论话题 进程通信方式和锁关系

程序员老王

高并发

架构师训练营第 10 周课后练习

菜青虫

极客大学架构师训练营

JVM笔记【1】-- 运行时数据区

秦怀杂货店

JVM JVM笔记

10张图带你入门分布式链路追踪系统原理

爱笑的架构师

七日更

架构相关5

FreeOcean

架构师训练营第十周作业一

韩儿

架构师训练营第十周作业

李日盛

作业-第10周

arcyao

架构师训练营第十周作业二

韩儿

设计模式【2】-- 简单工厂模式了解一下?

秦怀杂货店

设计模式 工厂模式 工厂方法模式

第五周总结

胡益

LeetCode题解:42. 接雨水,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

微服务过载保护原理与实战

万俊峰Kevin

微服务 go-zero Go 语言

炎币交易所APP系统开发|炎币交易所软件开发

系统开发

dubbo服务框架图&时序图

Mars

架构2期 - 第十周作业(1)

浮生一梦

极客大学架构师训练营 第十周 2组

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