Nodejs / Javascript动态区间

时间:2016-08-31 01:14:41

标签: javascript node.js

我正在使用NodeJS创建一个HTML5游戏(使用websockets)。要更新我的游戏并将数据发送给每个玩家,我使用setInterval(),间隔为33毫秒(每秒更新30次)。

当超过10个玩家连接到游戏时,websockets库开始消耗大量CPU并且setInterval开始有一些延迟(它达到每秒27-28帧)。

在对我的代码进行分析后,我发现大部分时间我的CPU处于空闲状态。所以我很兴奋。我的整个程序是否在每个循环中的33ms间隔内空闲? 如果我设置动态间隔会有效吗?像许多玩家连接并且每秒帧数开始下降时的情况我将间隔从33ms重置为28ms?这可以/任何人使用这样的系统吗?

祝你好运, 丹尼尔

1 个答案:

答案 0 :(得分:1)

我现在更清楚地了解你的问题了。我不确定我是如何解决这个问题的。我发现了一个类似的问题,解决方案不是使用setInterval而是使用setTimeout。我认为一旦计算出循环执行所花费的时间,就可以应用相同的逻辑。

javascript while loop or set interval with dynamic delay

修改

还要感谢@Bergi How to create an accurate timer in javascript?