在 Javascript 中分析异步函数

Posted

技术标签:

【中文标题】在 Javascript 中分析异步函数【英文标题】:Profiling async functions in Javascript 【发布时间】:2018-04-05 07:11:46 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于在 Javascript 中分析异步函数的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中分析函数

如何在 PostgreSQL 9.2 中分析 plpgsql 函数

在 Eclipse 中分析 Java 应用程序的最佳方法是啥?

如何在 Java Mission Control 中分析异常?

在 Eclipse 中分析 Java 应用程序? (插件)[关闭]

在 Java 中分析本机方法 - 奇怪的结果