【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

解读 $mash 通证 “Fair Launch” 规则,将公平发挥极致

EOSdreamer111

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

西柚子

shopee虾皮商品详情数据接口(Shopee.item_get)丨shopee虾皮API接口

tbapi

shopee商品详情数据接口 shopee API 虾皮shopee详情数据接口 虾皮商品详情数据接口

文心一言 VS 讯飞星火 VS chatgpt (171)-- 算法导论13.2 4题

福大大架构师每日一题

福大大架构师每日一题

华秋获深圳市福田区2023年职工“五小”创新与质量技术成果竞赛二等奖

华秋电子

物联网 新能源

Allins 官网上线,标志铭文赛道正式进入 AMM 交易时代

BlockChain先知

Mycat分库分表实时同步到GreatSQL

GreatSQL

数据迁移 greatsql

Beyond the WiFi Edge: Analyzing the Network Differences of IPQ4019 and IPQ6018

wallysSK

PCB设计必备:31条布线技巧

华秋电子

PCB设计 dfm

解读 $mash 通证 “Fair Launch” 规则,将公平发挥极致

股市老人

极狐GitLab Helm Chart 已上线,玩转云原生极狐GitLab!

极狐GitLab

IPQ9574 and QCN9274: Explore the WiFi7 MLO feature Test with Wallys DR9274

wallyslilly

qcn9274 ipq9574

全国范围AOI数据2023年12月更新,共计超过234.5万个(AOI数据更新系列)

Geek_f9782a

调试技巧 | AI工程化部署

AIWeker

c AI AI工程化部署

docker篇-重启策略+run容器常用参数

百度搜索:蓝易云

Docker 云计算 Linux 运维 云服务器

2024了,我不想再用AOP收集业务操作日志了 | 京东云技术团队

京东科技开发者

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

长安区块链

深入理解左倾红黑树 | 京东物流技术团队

京东科技开发者

支持向量机(SVM)是什么?

小齐写代码

青否数字人系统制作短视频矩阵!

青否数字人

数字人

如何查找iPhone中所有的应用程序

雪奈椰子

Allins 官网上线,标志铭文赛道正式进入 AMM 交易时代

EOSdreamer111

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

石头财经

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

小哈区块

实施管家式运维:为企业打造 定制化IT支持体系

太乙闲人

为什么要选择数字人系统源码?

青否数字人

数字人

2023年12月全国范围POI数据更新《POI数据更新系列》

Geek_f9782a

GIS POI 地理空间数据

语音AI小夜灯项目

智趣匠

【JAVA】AI医疗智能导诊系统源码

源码星辰

Java 源码 智能导诊

Java之Javac、JIT、AOT之间的关系

百度搜索:蓝易云

Java Linux 云服务器 AOT javac

元器件经验分享-晶体与晶振对比分析

华秋电子

供应链 元器件

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