javascript - Node 中setTimeout的性能?

标签 javascript node.js settimeout scalability

对于我的 webapp,我需要在任何给定点同时运行许多超时,可能在 10,000-100,000 左右。我想知道这个函数的扩展性如何。

我不需要它那么准确,主要是在 10-100 毫秒内准确。让一个函数在某个时间间隔上运行(例如,每 50 毫秒运行一次)会更好吗?它检查当前日期时间与保存的日期时间相比,如果是则调用该函数?

有没有人对 setTimeout 的底层实现有任何见解,并且可以阐明它可以在多大程度上被整体使用?

我还有更多问题:有谁知道一次可以运行多少次超时的限制?此外,对于这两种方法,我担心没有足够的时间来处理每个间隔的每个超时,并且它在及时触发超时功能方面“落后”。

最佳答案

实际上,您无法确定超时之间的确切间隔,因为它所做的只是在阈值之后将您的回调推送到回调队列,并且当事件循环将获得该回调时,推送到调用堆栈并执行它 - 是不确定的。间隔也是如此。您可能会出现一种情况,例如,5 个回调将一个接一个地执行,没有延迟。这是 javascript ))

关于javascript - Node 中setTimeout的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035929/

相关文章:

javascript - 下拉列表无法正确显示在 html 页面中

javascript - 从一个地方复制输入并将其用作变量或在另一个区域使用 onclick

javascript - jQuery Tablesorter 日期选择器

javascript - typescript 编译器错误 TS2307 : Cannot find module 'jquery'

javascript - 如何将参数传递给 setTimeout() 回调?

javascript - window.setTimeout() 问题

node.js - 我怎样才能让 mocha 单独运行我的测试?

node.js - sequelize-auto 找不到模块 'sequelize'

node.js - docker-node : Running as non-root user, 文件权限

javascript - 为什么 setTimeout 不等待调用函数?