是否有不与 Unity 3.5/4 .NET mono GC 交互的 C# 类列表数据结构?
我知道 C# 结构的行为类似于 Unity 中的范围变量,并且不受 GC 控制。我想知道如果可能的话,是否有任何免费的 GCIEnumerable
兼容的类似 List 的结构 - 能够过滤、添加元素并从中删除?
使用 .NET 时,任何“可增长”的对象都将由 GC 控制,因为它需要动态分配。
如果您的大小总是很小,您可能会创建一个“集合”类型,包装来自stackalloc的指针来模拟这一点,但它不会像普通列表那样表现。
防止大量分配/解除分配并因此导致 GC 运行的一种方法是使用池。这是您分配一定数量的对象,然后保持分配它们的地方。
当您需要一个新对象时,您只需从池中取出一个未使用的对象。您不会删除对象,只需将它们标记为未使用。