1

是否有不与 Unity 3.5/4 .NET mono GC 交互的 C# 类列表数据结构?

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

4

2 回答 2

3

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

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

于 2013-03-21T15:39:49.973 回答
2

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

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

另见这篇文章:如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该为粒子使用池

于 2013-03-21T15:53:41.413 回答