setInterval的使用
发布于 6 年前 作者 sinsupakaka 3634 次浏览 最后一次编辑是 3 年前

用node做游戏服务端,假设动态开房间,最多1000个房间。每个房间需要每隔500毫秒做个事情。那么有2种方法: 1:每个房间设定一个setInterval 2:总的就一个setInterval,然后去遍历目前所有的房间,调用某个接口。

哪一种比较好?如果是as3,那第二种会好很多,不知道node里是怎样的?

8 回复

顶起~这两天也在想这个问题~求大神~

感觉2好些,因为游戏这种模式是平行扩展的,你设置一个后平行扩展就不需要考虑其他的,但是每个一个的话就需要独自考虑。

就一个setInterval的话,排在后面的房间不是会给耽误了。 还是看要做的事是什么。

还是setTimeout自调用好

首先肯定不是setInterval,用setTimeout替代setInterval基本不用讨论了

个人建议1和2结合一下好一点 0.5秒已经是一个挺大的间隔了,如果所有的scheduler都挤在一起,容易导致cpu忙的时候忙死,闲的时候没事干。体现出来的现象就是当房间多的时候,总cpu使用率并不很高,但是有一部分排在列表靠后的房间会有延迟的感觉

建议把这个0.5秒拆分一下,比如说把所有房间分散到5组中,每0.1秒执行其中的五分之一

回到顶部