javascript - Nodejs/Javascript动态间隔

标签 javascript node.js

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

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

对我的代码进行分析后,我发现我的 CPU 大部分时间都是空闲的。于是我就这么想。我的整个程序在每个循环之间的 33 毫秒间隔内是否空闲? 如果我设置动态间隔会起作用吗?例如,当很多玩家连接并且每秒帧数开始下降时,我将间隔从 33 毫秒重置为 28 毫秒?这可以工作/有人可以使用这样的系统吗?

最诚挚的问候, 丹尼尔

最佳答案

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

javascript while loop or set interval with dynamic delay

编辑

还想将其包括在内,感谢@Bergi How to create an accurate timer in javascript?

关于javascript - Nodejs/Javascript动态间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239306/

相关文章:

javascript - xpath 选择一个属性值,其中另一个属性是谓词

javascript - Bunyan with webpack - 尝试访问已被填充的 fs

javascript - 使用nodejs,一个用户的更改可以同时反射(reflect)到其他用户

javascript - 使用 JavaScript/jQuery 预加载图像的最佳方式是什么?

linux - 带有 node.js 的简单 GPS 服务器?

node.js - NodeJS - 仅 OPTIONS 请求发送到 REST API,POST 或 GET 不会遵循 (Cloudflare)

node.js - 当套接字与服务器断开连接时,如何从房间取消订阅套接字

javascript - 如何在不丢失样式的情况下打印vue组件的一部分

javascript - 用于检查 JavaScript 语法的 Firefox 附加工具?

javascript - 使用 jQuery Isotope 了解 setTimeout() 和回调