写点什么

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

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

关注

评论

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

瓴羊Quick BI智能报表,让报表化复杂为简单!

巷子

手把手教你如何快速检测设备异常——实践类

阿里云AIoT

阿里云 物联网 IoT

Python 基础知识入门(三)

漫步桔田

开源面对面:浅谈数据库技术与人工智能的结合与实践

阿里云数据库开源

postgresql 阿里云 PolarDB for PostgreSQL ChatGPT 数据库技术

Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse

tapdata

数据库 实时数仓

极光笔记 | 埋点体系建设与实施方法论

极光GPTBots-极光推送

精细化运营 数据埋点 用户运营

ChatGPT模拟MySQL数据库 | 社区征文

NineData

MySQL 数据库 编程 技术栈 ChatGPT

热点面试题:为什么 0.1+ 0.2 != 0.3,如何让其相等?

Immerse

JavaScript 面试 大前端 前端面试题 超全前端面试题

技术科普|模糊测试背后的2个核心逻辑

云起无垠

模糊测试

会声会影2023终极版下载安装教程

茶色酒

会声会影2023

ChatGPT对于普通人有什么机会和影响?

引迈信息

人工智能 AI AIGC ChatGPT

公众号接入 chatGPT 教程(附源码)

攻城狮杰森

Python AI openai ChatGPT

LED屏逐点校正指南

Dylan

像素 LED显示屏 全彩LED显示屏

451个PyPI包通过安装Chrome扩展窃取加密信息

墨菲安全

供应链安全 投毒

【2.17-2.24】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

DawnSql快速入门

陈飞

微服务 分布式数据库 实时数仓

不被同事骂的代码规范,程序员们值得拥有!

程序员小毕

Java 程序员 程序人生 架构师 代码

5分钟入门物联网大数据计算——实践类

阿里云AIoT

阿里云 物联网 IoT

技术分享| anyRTC回声消除算法进化

anyRTC开发者

人工智能 音视频 回声消除 语音通话 视频通话

【kafka】常用命令汇总

石臻臻的杂货铺

kafka

Python基础知识入门(二)

漫步桔田

设备掉线怎么办?数据分析让冰冷的设备“开口说话”——实践类

阿里云AIoT

阿里云 物联网 IoT

Python基础知识入门(四)

漫步桔田

Teradata在华落幕,国产化崛起,袋鼠云数栈会是更好的选择吗?

袋鼠云数栈

3DMAX中的7个基本建模小窍门

Finovy Cloud

blender 3ds Max Cinema 4D

吞吐量最高提升 400%!百度智能云联合 NVIDIA 完成首批 17 个自动驾驶模型优化

Baidu AICLOUD

自动驾驶 模型训练

企业经常需要进行传输文件,大文件传输有哪些方法?

镭速

活动报名:Tapdata Cloud V3 最新功能全解与核心应用场景演示

tapdata

可观测性最佳实践|阿里云事件总线 EventBridge 最佳实践

观测云

可观测性 云服务 可观测 观测云 可观测性用观测云

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