栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

节点版本8中的异步/等待性能指南

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

节点版本8中的异步/等待性能指南

try/catch
9aac80f
针对V8
5.3
(节点
v7.x
及更高版本)的提交中获得了TurboFan优化。这意味着
try/catch
具有不良性能的历史性说法不再正确。
从V8博客文章:

过去,V8难以优化ES2015 +中提供的语言功能。例如,

try/catch/finally
向V8的经典优化编译器Crankshaft
添加异常处理(即)支持从未变得可行。这意味着V8优化ES6功能(如)的能力
for...of
受到限制,该功能本质上具有隐式的finally子句。曲轴的局限性以及向V8的基准编译器Full-
pregen中添加新语言功能的整体复杂性,使得固有的难度很难确保在标准化的V8中尽快添加和优化ES新功能。

幸运的是,Ignition和TurboFan(V8的新解释器和编译器管道)从一开始就旨在支持整个Javascript语言,包括高级控制流,异常处理,以及

for...of
从ES2015开始的最新结构。Ignition和TurboFan体系结构的紧密集成使快速添加新功能并快速,逐步地优化它们成为可能。


try/catch``async
函数中的功能只是Promise
.then
.catch
方法上的语法糖,因此性能由底层Promise实现决定。蓝鸟声称比本地Promise实现具有更好的性能,因此从理论上讲-
如果蓝鸟声称是正确的-您将
try/catch
通过用蓝鸟的Promise实现覆盖原生Promise实现来获得更好的性能。
例如,在Node:中
const Promise = require("bluebird")
,或
global.Promise =require("bluebird")
全局覆盖它。

但是请注意,这可能会在将来发生变化,因为最初的Promise实现是在Javascript中实现的,但是最近已在C ++中重新实现,可以在bug
#5343中进行跟踪。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号