出于性能原因,我将游戏地图划分为10,000个图块。每个图块都有一个实体数组。因此,进入/离开图块的实体被推入/移出相应的阵列。
另一方面,为了避免在10,000个阵列上循环更新 所有每个 x ms 的实体,最多的是处理数组的有效方法?
除了tiles数组,我应该创建一个包含所有tile中所有实体的全局数组吗?这不是记忆浪费吗?
答案 0 :(得分:2)
这是性能调优,处理与内存的常见二分法。 我的答案一如既往(特别是关于表现)是&#34;它取决于&#34;。唯一真正知道的方法是测量两者并查看速度/内存使用是否符合某些可接受的范围。例如。如果你想要60fps,你必须每帧<16ms,没有问题。
我的建议是以最适合读者(即你/你的团队)的方式实现它,并且只有当它工作时才会破坏代码以获得性能提升(然后,只有在你能够测量它们之后) 。这可以防止你&#34;优化&#34;代码并使其不可读/不可维护(或至少不那么),没有证据证明它是必需的并且是实际的改进。