在 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 中分析异步函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PostgreSQL 9.2 中分析 plpgsql 函数
在 Eclipse 中分析 Java 应用程序的最佳方法是啥?
如何在 Java Mission Control 中分析异常?