C# 是否有一个类似C a列表的数据结构不与.NET mono GC交互?
是否有一个类似C a列表的数据结构不与Unity 3.5/4.NET mono GC交互C# 是否有一个类似C a列表的数据结构不与.NET mono GC交互?,c#,.net-3.5,unity3d,C#,.net 3.5,Unity3d,是否有一个类似C a列表的数据结构不与Unity 3.5/4.NET mono GC交互 我知道C结构在Unity中的行为类似于范围变量,不受GC的控制。我想知道是否有免费的GC(如果可能的话)IEnumerable兼容列表式结构-能够过滤、添加元素并从中删除?使用.NET时,任何可增长的对象都将由GC控制,因为它需要动态分配 如果大小总是很小,则可以创建一个包含指针的集合类型来模拟它,但它的行为不会像普通列表一样。使用.NET时,任何可增长的对象都将由GC控制,因为它需要动态分配 如果大小总是
我知道C结构在Unity中的行为类似于范围变量,不受GC的控制。我想知道是否有免费的GC(如果可能的话)IEnumerable兼容列表式结构-能够过滤、添加元素并从中删除?使用.NET时,任何可增长的对象都将由GC控制,因为它需要动态分配
如果大小总是很小,则可以创建一个包含指针的集合类型来模拟它,但它的行为不会像普通列表一样。使用.NET时,任何可增长的对象都将由GC控制,因为它需要动态分配
如果大小总是很小,则可能会创建一个集合类型,从中包装一个指针以模拟此情况,但它的行为不会像普通列表一样。防止大量分配/取消分配从而导致GC运行的一种方法是使用池。在这里,您可以分配一定数量的对象,然后继续分配它们 当您需要一个新对象时,只需从池中取出一个未使用的对象。不删除对象,只将其标记为未使用
另请参阅本文:防止大量分配/解除分配从而导致GC运行的一种方法是使用池。在这里,您可以分配一定数量的对象,然后继续分配它们 当您需要一个新对象时,只需从池中取出一个未使用的对象。不删除对象,只将其标记为未使用
另请参阅本文:主要思想是获取一个类似列表的项,该项将在退出范围时删除自身。不确定我是否遵循:您的意思是要创建一个GC未收集的列表对象?编辑:或者你的意思是,一旦没有其他项目引用列表中的项目,列表中的项目将自动从该列表中删除?因此,你希望某些项目在超出范围时将自身删除,但在不再有用时不会被垃圾收集?这不正是GC的用途吗?@Bobson和ChrisSinclair我认为这里的目标是减少/消除GC管理的分配,以防止收集引起的暂停。这在游戏中并不少见,因为GC上的内存压力太大,会出现打嗝现象。@ReedCopsey-这很有意义。主要思想是获取一个类似列表的项,该项在退出作用域时会自动删除。不确定我是否遵循:你的意思是要创建一个GC不收集的列表对象?编辑:或者你的意思是,一旦没有其他项目引用列表中的项目,列表中的项目将自动从该列表中删除?因此,你希望某些项目在超出范围时将自身删除,但在不再有用时不会被垃圾收集?这不正是GC的用途吗?@Bobson和ChrisSinclair我认为这里的目标是减少/消除GC管理的分配,以防止收集引起的暂停。这在游戏中并不少见,因为GC上的内存压力太大,会出现打嗝现象。@ReedCopsey-这很有道理。