在 Javascript 中分析异步函数

Profiling async functions in Javascript

我有一个复杂的 async/await 函数流程,我想对其进行优化。

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

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

如何有效地调试 async/await 函数的性能?

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

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