V8团队优化了异步函数和promises对象
极客时间编辑部
讲述:杜力大小:1.98M时长:02:11
最近,V8 JavaScript 团队宣布优化了异步函数和 promises 对象。团队还提升了异步代码的调试体验,解决了 JavaScript 开发人员的一大共同痛点。
据了解,V8 是谷歌推出的开源 JavaScript 引擎,支持 Chrome、基于 Chrome 的浏览器以及 Node.js。
团队在 ES2015 中引入了 promises,在这之后又引入了异步函数,在 ES2018 中引入的异步迭代,可以让编写异步代码变得比使用回调来的更为高效。
但是直到最近,这些新功能的优势还是没有得到很好的体现。Google V8 工程师玛亚·莱科瓦(Maya Lekova)和贝内迪克特·穆勒(Benedikt Meurer)解释,他们已经非常努力地提升了性能,使得 V8 的性能从 v5.5 (hrome 55 & Node.js 7)到 v6.8 (Chrome 68 & Node.js 10)上升了一个台阶。现在的性能水平可以保证开发人员放心地使用这些新的编程范例,而不需要考虑速度问题,Promise.all 的性能水平也提升了 8 倍。
此外,V8 团队还探索了真实世界的源代码性能案例,研究了使用 promises 和异步函数的中间件框架(例如 hapi、koa 和 trek)。随着 V8 最近的变更,这些框架的性能也会得到显著提升。
同时,V8 中的几项变更促使了异步性能的提升,包括全新的优化编译器 TurboFan,全新的垃圾收集器 Orinoco,以及将 GC 过程从主线程中移出,以提升请求处理的过程。
随后,由于提升了性能,需要用一些推荐的补丁来改进异步函数规范,这可以提高 V8 以及所有 JavaScript 引擎的性能。这些变更包括移除两个额外的微拍,并移除了异步函数的 throwaway promise。
随着最近对于 V8 源代码的更新,以及对异步函数规范的计划改进,async 和 await 由于降低了异步函数的开销,因此也比 promise 代码表现得更好。
最后,为了让调试变得更加简单,Chrome DevTools 还改进了堆跟踪,包括堆跟踪的异步部分。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论