Node.js 节点-设置每个异步回调的最大时间

Node.js 节点-设置每个异步回调的最大时间,node.js,performance,event-loop,Node.js,Performance,Event Loop,我希望能够对节点事件循环进行调优,以便在侦听事件的代码段花费太长时间执行时中止或引发异常 使用异步钩子API,可以监视回调运行的时间。然而,我找不到任何方法来控制局面 理想情况下,我希望能够优化节点,以便同步代码不会运行太长时间。代码运行时间过长将导致应用程序被阻止和无响应。(). 所以,如果我可以设置一个允许回调运行的时间限制,那就太好了 从我的研究中,我认为我想要的是不可能的,但我希望是错误的:) 编辑:任何关于可用调优选项的文档都将解决此问题。到目前为止,我只听说过垃圾收集和堆大小。Nod

我希望能够对节点事件循环进行调优,以便在侦听事件的代码段花费太长时间执行时中止或引发异常

使用异步钩子API,可以监视回调运行的时间。然而,我找不到任何方法来控制局面

理想情况下,我希望能够优化节点,以便同步代码不会运行太长时间。代码运行时间过长将导致应用程序被阻止和无响应。(). 所以,如果我可以设置一个允许回调运行的时间限制,那就太好了

从我的研究中,我认为我想要的是不可能的,但我希望是错误的:)

编辑:任何关于可用调优选项的文档都将解决此问题。到目前为止,我只听说过垃圾收集和堆大小。

Node.js是设计出来的。因此,对于CPU密集型应用程序来说,它不是一个好的选择

不管编程语言是什么,异步中断正在运行的线程通常是不安全的,JavaScript也不例外。线程可能处于锁定某些资源、分配内存、修改全局数据等状态。因此,中断线程可能导致死锁、内存泄漏、数据损坏等

可以安全中断的进程需要显式地实现这一点,例如定期检查某些标志,然后以安全的方式停止。游戏通常使用基于时间的计算循环,其中周期性地检查经过的时间,循环在达到例如20ms时退出,以便稍后在下一次调用期间继续该过程


如果可能,将长时间运行的计算分解为一系列较短的步骤/回调。

理想情况下,如果代码不能在Javascript堆栈上花费太多时间,则应设计为不会在Javascript堆栈上花费太多时间。您链接的页面上描述了一个示例:如果JSON解析可以处理堆栈上更重要的代码,那么计算应该作为一组流组件进行分解,这些组件将生成可能需要堆栈的其他函数。试图设计一个系统,以使程序保持一致状态的方式终止任何回调,这比考虑这些回调的设计更像是一项艰巨的任务。如果回调被终止,我的意思是,工作将被丢弃,而不会恢复。开发人员在使用该设置时需要意识到这一点。你是对的,但这并不能回答我的问题:)事实上,我正在为我的应用程序探索这些选项,但我想确保彻底研究这一途径。答案是你的研究是正确的-你想要的无法实现;)没关系。正如你所说,我有多种方法来完成同样的事情。我只是在寻找一种简单的方法,将at作为一个全局常数强制执行为最小响应。这只意味着我们需要永远保持敏锐的观察力