是否存在C#类似列表的数据结构,它不与.NET mono GC交互?

时间:2013-03-21 15:36:59

标签: c# .net-3.5 unity3d

是否存在C#类似列表的数据结构,它不与Unity 3.5 / 4 .NET单色GC交互?

我知道C#结构在Unity中的行为类似于范围变量,并且不受GC控制。我想知道如果可能IEnumerable兼容类似列表的结构,是否有任何免费的GC - 能否过滤,添加元素并从中删除?

2 个答案:

答案 0 :(得分:3)

使用.NET时,任何“可增长”的对象都将由GC控制,因为它需要动态分配。

如果你的大小总是很小,你可能会创建一个“集合”类型来包装来自stackalloc的指针来模拟这个,但它不会像普通列表那样。

答案 1 :(得分:2)

防止大量分配/解除分配并因此导致GC运行的一种方法是使用池。这是您分配一定数量的对象,然后分配它们的地方。

当您需要一个新对象时,您只需从池中取出一个未使用的对象。您不删除对象,只需将它们标记为未使用。

另见帖子:Should I use Pools for particles if i forced to re-init every particle every time i create them