【问题标题】:What is the best way for manage time in Node.js?在 Node.js 中管理时间的最佳方法是什么?
【发布时间】:2012-10-09 16:42:30
【问题描述】:

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

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

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

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

有更好/其他方式吗?

【问题讨论】:

  • 我不喜欢 RPG 术语。你能解释一下PNJ是什么意思吗?
  • 我用法语单词表示 NPC(非玩家角色)。抱歉,已编辑。
  • 也许这个 [问题/答案][1] 可以对这个主题有所了解。 [1]:stackoverflow.com/questions/12168708/…
  • @WernerVesterås,换句话说,setTimeout() 很便宜。
  • 它回答了我的问题,谢谢

标签: node.js timer


【解决方案1】:

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

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

这是实现背后的基本思想。通过考虑空桶或类似的东西,您可能会获得更好的性能,但简单的实现应该已经非常高效了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 2021-08-31
    • 2012-04-08
    • 2017-05-07
    • 2010-09-16
    相关资源
    最近更新 更多