写点什么

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

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

关注

评论

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

SwitchResX for Mac(显示器屏幕分辨率修改工具)

Mac相关知识分享

RapidClick for Mac(鼠标自动点击工具)

Mac相关知识分享

Audio Hijack for Mac(强大的音频录制软件)v4.4.5直装版

小玖_苹果Mac软件

作业帮T30和步步高S7的区别

妙龙

作业帮 学习机 步步高

AI英语作文练习APP的功能

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语作文

Steinberg SpectraLayers Pro for mac(Mac音频频谱编辑器)v11.0.50激活版

小玖_苹果Mac软件

DCommander for Mac(两窗格文件管理器)

Mac相关知识分享

Final Cut Pro for Mac(fcpx视频剪辑)

Mac相关知识分享

淘宝买家秀数据接口(taobao.item_review_show)丨淘宝API实时接口指南

tbapi

淘宝API接口 淘宝买家秀接口

WinX HD Video Converter for Mac(高清视频转换软件)v6.8.3激活版

小玖_苹果Mac软件

YT Saver for Mac(视频下载和转换器)v9.2.4激活版

小玖_苹果Mac软件

有奖实践,基于 EMR StarRocks 实现游戏玩家画像和行为分析

阿里云大数据AI技术

阿里云 EMR paimon 镜舟 免费试用

Keka for Mac(文件压缩解压工具)

Mac相关知识分享

LLM 分布式训练六大关键技术介绍

Baihai IDP

AI gpu LLMs Baihai IDP

重塑未来:Cloud Studio引领云端开发与学习的新纪元

代码忍者

Screen Wonders for Mac(3D壁纸屏保软件)v3.2.0激活版

小玖_苹果Mac软件

跬智信息(Kyligence)获评钛媒体2024“年度 AI 应用”

Kyligence

#人工智能 企业 AI 应用

AutoMQ热招岗位,等你来投!

AutoMQ

Java 云计算 招聘 岗位 AutoMQ

BBEdit for Mac v15.1.3 多功能代码编辑器

小玖_苹果Mac软件

Axure RP 10 for Mac(交互式原型设计)

Mac相关知识分享

Steinberg WaveLab 12 Pro for Mac(母带制作工具) v12.0.50激活版

小玖_苹果Mac软件

唯品会Vip商品详情 API 接口:开发应用与收益深度剖析

科普小能手

API 接口 API 测试 唯品会商品数据接口 唯品会 唯品会商品数据采集

ACDSee Photo Studio 11 for Mac(苹果电脑数字图像处理软件)

小玖_苹果Mac软件

Native Instruments Komplete Kontrol for mac(音源制作软件)v3.3.4免激活版

小玖_苹果Mac软件

Cookie for Mac(浏览器缓存清理工具)v7.4.6免激活版

小玖_苹果Mac软件

Axure RP 11 for Mac(快速原型设计工具)

Mac相关知识分享

Premiere Pro 2024 for mac(pr2024 视频编辑器)

Mac相关知识分享

杭州乘云联合中国信通院等单位正式发布《云计算智能化可观测性能力成熟度模型》标准

乘云数字DataBuff

云计算 可观测性 智能运维

AI智能体的开发流程

北京木奇移动技术有限公司

AI教育 AI智能体 软件外包公司

【YashanDB知识库】要有好的跑批性能,有哪些参数要注意

YashanDB

数据库 yashandb

大模型安全 | “创造未来,安全同行” 北京站·第九期「度安讲」 技术沙龙开放报名

百度安全

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