Nodejs / Javascriptdynamic间隔

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

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

分析我的代码后,我发现大部分时间我的CPU空闲。 所以我在抽血。 我的整个程序在每个循环中以33ms为间隔闲置吗? 如果我设置了dynamic间隔,它会起作用吗? 例如当很多玩家连接并且每秒帧数开始下降时,例如,将间隔从33ms重设为28ms? 这工作/有任何人使用这样的系统吗?

最好的问候,丹尼尔

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

javascript while循环或设置dynamic延迟间隔

编辑

还想包括这个感谢@Bergi 如何在JavaScript中创build一个准确的计时器?