1 个定时器与多个定时器(异步)

1 Timer vs multiple timers (async)

我想知道什么更有效率。 1 个做很多事情的定时器或多个做自己的小事的定时器。

所以需要它的上下文: 我正在为 Minecraft 制作一个插件,它与法术有关,当玩家施放法术时,我会创建一个新的法术实例,它必须在每个滴答声中做一些事情。 所以我想知道什么是最好的,为所有法术创建一个异步计时器,一旦完成,停止计时器,并清除对该法术的所有引用,以便它被垃圾收集器自动删除。 要么 创建法术,将其放入我的处理程序的静态列表中,并让处理程序有 1 个计时器来检查每个法术。 (一秒钟内可以激活 200 多个法术......但这是最坏的情况 :P)

亲切的问候, 符文拳

我不知道 Minecraft run-time 的细节,但一般来说,每个计时器都有开销,通常是 run-time 将控制权交给您的代码。所以一般来说,单个定时器会比多个定时器更有效率。然而,Minecraft 中的实际实现可能会以某种未定义的巧妙方式缓解这种情况,但我对此表示怀疑。

此外,即时创建资源并让垃圾收集器处理这些也会给您的配置增加额外的负载。

因此,仅从性能的角度来看,单个静态计时器肯定会更高效。我无法说出效率有多高以及额外的实施成本是多少,并且可能会因您现有的代码而有很大差异。