2012-10-09 145 views
2

哪個是管理時間和實時事件的最佳方式?在Node.js中管理時間的最佳方式是什麼?

我正在用Node.js實現一個小型多人RPG遊戲。 我有很多NPC,每3秒或4秒移動一次,所以我需要更新它們。

解答A: 每個NPC使用一個setTimeout。如果我有數百個NPC,我會創建定時器。 它更簡單,但效率不低?

解決方案B: 對所有NPC使用一個setTimeout。每次我們通過計算NPC移動前剩餘的最小時間來調用下一次超時。 所以我們必須使用更復雜的代碼,但我們只有一個setTimeout

有更好的方法嗎?

+0

我不是RPG術語。你能解釋一下PNJ的含義嗎? –

+0

我使用法語單詞作爲NPC(非玩家角色)。對不起,這是編輯。 – BAK

+1

也許這[問題/答案] [1]會對這個問題有所瞭解。 [1]:http://stackoverflow.com/questions/12168708/is-there-any-limit-to-settimeout –

回答

0

如相關問題所述,setTimeout便宜。但是,這不是免費的。

您可以像memcached一樣使用單一的setTimeout。它有一個大陣。每秒鐘,它檢查這個數組的第一個項目(或最後一個),看看是否有需要完成的事情。如果有,它就這樣做。然後,它刪除該項目。沖洗並重復。

這是實現背後的基本思想。通過考慮空桶或類似的東西,你可能會獲得更好的性能,但是一個簡單的實現應該是相當高性能的。

相關問題