在Node.js中管理时间的最佳方式是什么?

在Node.js中管理时间的最佳方式是什么?,node.js,timer,Node.js,Timer,管理时间和实时事件的最佳方式是什么 我正在用Node.js实现一个小型多人RPG游戏。 我有很多NPC,每3或4秒移动一次,所以我需要更新它们 解决方案A: 每个NPC使用一个设置超时。如果我有数百个NPC,我将创建为计时器。 它更简单,但不是效率更低吗 解决方案B: 对所有NPC使用一个设置超时。每次,我们通过计算NPC移动前最短的剩余时间来调用下一个超时。 所以我们必须使用更复杂的代码,但我们只有一个setTimeout 它是否比其他方式更好 正如相关问题所说,setTimeout很便宜。然

管理时间和实时事件的最佳方式是什么

我正在用Node.js实现一个小型多人RPG游戏。 我有很多NPC,每3或4秒移动一次,所以我需要更新它们

解决方案A: 每个NPC使用一个设置超时。如果我有数百个NPC,我将创建为计时器。 它更简单,但不是效率更低吗

解决方案B: 对所有NPC使用一个设置超时。每次,我们通过计算NPC移动前最短的剩余时间来调用下一个超时。 所以我们必须使用更复杂的代码,但我们只有一个setTimeout


它是否比其他方式更好

正如相关问题所说,setTimeout很便宜。然而,它不是免费的

您可以使用一个setTimeout,其工作方式与memcached类似。它有一个大数组。每隔一秒钟,它都会检查这个数组的第一项或最后一项,并查看是否需要执行某些操作。如果有,它就会这样做。然后,它删除该项。冲洗并重复


这是实施背后的基本理念。通过考虑空桶或类似的东西,您可能会获得更好的性能,但是一个简单的实现应该已经相当好了。

正如相关问题所说,setTimeout很便宜。然而,它不是免费的

您可以使用一个setTimeout,其工作方式与memcached类似。它有一个大数组。每隔一秒钟,它都会检查这个数组的第一项或最后一项,并查看是否需要执行某些操作。如果有,它就会这样做。然后,它删除该项。冲洗并重复


这是实施背后的基本理念。通过考虑空桶或类似的东西,您可能会获得更好的性能,但是一个简单的实现应该已经相当好了。

我不熟悉RPG术语。你能解释一下PNJ是什么意思吗?我用法语表示NPC非玩家角色。很抱歉,这是经过编辑的。也许这个[问题/答案][1]会对这个主题有所启发。[1] :@WernerVesterås,换句话说,setTimeout很便宜。它回答了我的问题,谢谢。我不喜欢RPG术语。你能解释一下PNJ是什么意思吗?我用法语表示NPC非玩家角色。很抱歉,这是经过编辑的。也许这个[问题/答案][1]会对这个主题有所启发。[1] :@WernerVesterås,换句话说,setTimeout很便宜。它回答了我的问题,谢谢