在Javascript中分析异步函数

时间:2018-04-05 07:11:46

标签: javascript performance promise async-await profiling

我有一个复杂的async / await函数流,我想优化它。

在调试同步工作流程时,使用Chrome开发工具的内置分析器非常实用,但跟踪微任务触发器以恢复承诺是一个困难的工作流程,几乎没有概述。

不同的想法:我正在考虑利用babel生成的代码来收集在承诺解析的不同阶段花费的时间,或者使用未转换的代码并覆盖全局Promise对象以获得性能洞察力。

如何以有效的方式调试async / await函数的性能?

1 个答案:

答案 0 :(得分:1)

在这里没有得到任何回复后,我自己做了解决方案。这很粗糙,但工作。我通过覆盖全局Promise对象来做到这一点。这仅适用于babel-transiled异步函数,因为native async显然不尊重被覆盖的window.promise。通过使用Error().stack进行堆栈检查(感谢this question),我可以确定谁在创建该承诺。

结果可以找到here,您可以使用npm i promise-performance