出于性能原因,我将游戏 map 分为 10,000 个图 block 。每个图 block 都有一个实体数组。因此,进入/离开图 block 的实体被推送到相应的数组中/从相应的数组中删除。
另一方面,为了避免在 10,000 个数组上循环以每 x 毫秒更新所有实体,什么是最重要的处理数组的有效方法?
除了图 block 数组之外,我是否应该创建一个包含所有图 block 中的所有实体的全局数组?这不是浪费内存吗?
最佳答案
这是性能调优、处理与内存中常见的二分法。 我一如既往的回答(特别是关于性能)是“这取决于”。唯一真正了解的方法是测量两者,看看速度/内存使用情况是否在可接受的范围内。例如。如果您想要 60fps,则必须<每帧 16 毫秒,没有任何问题。
我的建议是以对读者(即您/您的团队)最合乎逻辑的方式来实现它,并且只有在它有效时才对代码进行破坏以提高性能(然后,只有在您可以衡量它们时) 。这可以防止您在没有证据证明代码是必需的并且是实际改进的情况下“优化”代码并使其不可读/不可维护(或者至少不那么难以维护)。
关于javascript - 循环 : 10, 000 个数组(浪费时间)与 1 个全局数组(浪费内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39942766/