【发布时间】:2016-10-28 09:40:46
【问题描述】:
对于我的 web 应用程序,我将需要在任何给定点同时运行许多超时,可能在 10,000-100,000 左右。我想知道这个函数的扩展性如何。
我不需要它那么准确,大部分准确在 10-100 毫秒内。让一个函数在某个时间间隔内运行(例如,每 50 毫秒运行一次),检查当前日期时间与保存的日期时间,如果是则调用该函数会更好吗?
有没有人对 setTimeout 的底层实现有任何见解,并且可以阐明它可以在多大程度上被整体使用?
我有更多问题:有谁知道一次可以运行多少次超时的限制?此外,对于这两种方法,我担心没有足够的时间来处理每个间隔的每个超时,并且在及时触发超时功能方面它会“落后”。
【问题讨论】:
-
John Resig 写了一篇很棒的文章(虽然不是完全用 node.js 写的),我非常喜欢:ejohn.org/blog/how-javascript-timers-work
-
看是否需要持久化。看起来您需要这样的调度程序级别解决方案:github.com/rschmukler/agenda P.S.关于限制:stackoverflow.com/a/12173835/4989460
-
“有人知道一次可以运行多少次超时的限制吗?” --- 1.
-
与所有性能问题一样,关键是在负载下自行测试并进行处理。除了“负载测试”之外,没有一个灵丹妙药的答案
-
有没有人对 setTimeout 的底层实现有任何见解 唯一的hard facts would be whatever the spec says。除此之外,Js 引擎还可以解释
标签: javascript node.js settimeout scalability