【发布时间】:2012-09-27 14:17:28
【问题描述】:
我最近发现了面向数据设计的好处。它看起来非常令人印象深刻。要点之一是按类型和访问权限对数据进行分组,而不是全部放在对象中,而是放在数组中,以防止缓存未命中并进行更好的处理。
所以在游戏中我们仍然有实例并且用户可以销毁它们中的任何一个(不仅是数组中的最后一个)。我不知道如何有效地处理数组中间的对象删除。
我有一个想法:拥有isAlive 的值,但这会对条件数量造成相当大的影响,因为每个对象在处理、绘图等过程中都会被检查多次...
另一个想法是移动整个数组以填充必须删除的空间,但这会在删除时消耗大量资源。
在国防部,人类如何处理这个问题?
所以提出要求:
- 它必须是数组,以减少 DOD 中的缓存未命中率
- 它必须有快速的随机位置对象删除,最大 o(log n)
- 对象自创建以来就不能移动,因为它们可能在未知的地方被引用,所以会导致程序错误行为
【问题讨论】: