写点什么

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

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

关注

评论

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

代码审计思路之PHP代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

雷霆传奇H5光柱版游戏详细图文架设教程

echeverra

游戏

Hibernate 的 HHH90000022 警告

HoneyMoose

再一次重构云计算底座, Amazon Graviton3!

亚马逊云科技 (Amazon Web Services)

计算

java开发面试之Redis高并发处理

@零度

redis JAVA开发

终于“打造”出了一个可以随时随地编程的工具

老表

Python Linux 服务器 跟老表学云服务器

黑客技能:xss攻击入门

喀拉峻

黑客 网络安全 XSS 渗透测试

聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)

bin的技术小屋

网络编程 socket nio netty java 编程

混沌工程之ChaosBlade-Operator 使用之模拟 POD 丢包场景

zuozewei

性能测试 混沌工程 ChaosBlade 1月月更

在 Flutter 中使用交错网格视图创建瀑布流布局

坚果

flutter 1月月更

从技术新趋势到云原生应用开发,云计算下一个十年将走向何方

亚马逊云科技 (Amazon Web Services)

计算

【架构实战营】模块九作业

Geek_99eefd

架构实战营 「架构实战营」

深入 MySQL 索引:从数据结构到具体使用

Ayue、

MySQL 数据库 1月月更

手机APP消息推送极光推送jpush-php实例

Owen Zhang

极光推送 jpush-php实例

“爆到天际线” - TiDB 2021 Hackathon 决赛不负责任点评

PingCAP

失去了SDK,云计算将会怎样?

亚马逊云科技 (Amazon Web Services)

计算

【网络安全】手把手给大家演练红队渗透项目

H

网络安全 渗透测试·

13 Prometheus之云时代的监控目标及挑战

穿过生命散发芬芳

运维 监控 Prometheus 1月月更

被赶出自己公司的40岁程序员,为Coder们写了个网站--程序员福利网

程序员福利网老骨

程序员 导航网站

Spring Boot Admin,贼好使!

王磊

springboot

仅有0.1M可训参数,AIOps日志异常检测新范式

云智慧AIOps社区

AI 算法 异常检测 智能运维 日志解析

基于云上 Arm 架构赋能数值天气预报

亚马逊云科技 (Amazon Web Services)

计算

KubeMeet 直播 | 现场直击大规模集群、混合环境下的云原生应用交付难题

阿里巴巴云原生

阿里云 云原生 KubeMeet 交付 直播活动

小白都能吃透Java IOl流,最骚最全笔记,没有之一!1️⃣

XiaoLin_Java

Java io 基础 1月月更

Go 语言快速入门指南:Go 语言解析JSON

宇宙之一粟

Go json 1月月更

1月月更|推荐学java——MyBatis高级

逆锋起笔

mybatis SSM框架 java 编程 动态SQL

类脑计算技术领域领导者灵汐科技加入龙蜥社区,共同繁荣开源生态

OpenAnolis小助手

Linux 开源 芯片 生态

公开啦!「2021中国技术品牌影响力企业 」OceanBase 成功上榜

OceanBase 数据库

数据库 开源 开发者 OceanBase 开源 技术品牌

深入理解MySQL的binlog

JavaEdge

1月月更

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