NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

专为大模型训练优化,百度集合通信库 BCCL 万卡集群快速定位故障

百度Geek说

跨境电商的小语种数字人实现直播带货!

青否数字人

数字人

简单聊聊租户隔离定义以及优势

行云管家

IT运维 租户 租户隔离

智能便捷|AIRIOT智慧充电桩管理解决方案

AIRIOT

物联网平台 智慧系统 智慧充电桩

2024上海国际机器视觉技术及工业应用展览会

吹吹晚风

比特币BRC20铭文智能打币工具开发

薇電13242772558

BRC-20

京东JD商品详情API引领电商智能化新潮流

技术冰糖葫芦

API 接口

【技术探讨】无线通信模块拉距测试,是否一定要带笔记本电脑?

Geek_ab1536

从原理到实践,大咖带你拆解人工智能的神秘面纱

霍格沃兹测试开发学社

速存,详细罗列香橙派AIpro外设接口样例大全(附源码)

华为云开发者联盟

开发 华为云 开发板 昇腾AI处理器 华为云开发者联盟

康士柏四驱版2000马力机,助你玩转改装界

Geek_2d6073

2024上海国际个护美健电器展览会

吹吹晚风

2024上海国际第三代半导体技术及封测展览会

吹吹晚风

2024上海国际新能源汽车功率半导体技术展览会

吹吹晚风

从原理到实践,拆解人工智能的神秘面纱

测吧(北京)科技有限公司

测试

揭秘QQ的AI绘画大模型技术——QQGC深度解析

百度开发者中心

大模型 绘画

2024中国(上海)国际灯饰照明展览会

吹吹晚风

2024上海国际碳化硅及相关材料设备展览会

吹吹晚风

读架构整洁之道的一些感悟

于顾而言

架构设计 架构设计原则 编程范式

Golang微服务对接Spring-Cloud Gateway

于顾而言

golang Spring Cloud Gateway #微服务

NineData与OceanBase携手完成产品兼容认证,共筑企业级数据库新生态

NineData

数据库 oceanbase 兼容 NineData 奥星贝斯

OpenTiny 妇女节限时特别活动来啦~

OpenTiny社区

开源 Vue 前端 低代码 组件库

探索AI绘画的无限可能:一站式集成大模型工具

百度开发者中心

人工智能 大模型 AI绘画

成功入选CVPR2024!毫末提出一种基于摄像头的4D占据网格预测的Cam4DOcc新方案

Geek_2d6073

2024上海国际智慧触控与显示技术展览会

吹吹晚风

Sharding-JDBC源码解析与vivo的定制开发

vivo互联网技术

源码解析 sharding-jdbc 定制开发

[自研开源] MyData 使用手册v0.7.1

LIEN

开源 数据集成 业务融合 API对接 mydata

2024上海国际网络直播与短视频产业展览会

吹吹晚风

2024中国(上海)国际嵌入式系统展览会

吹吹晚风

探索基于Stable Diffusion的智能绘画大模型

百度开发者中心

人工智能 大模型 绘画工具

义乌等保测评公司有哪些?用哪款堡垒机好?

行云管家

等保 义乌

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