Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有一个类似C a列表的数据结构不与.NET mono GC交互?_C#_.net 3.5_Unity3d - Fatal编程技术网

C# 是否有一个类似C a列表的数据结构不与.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 a列表的数据结构不与Unity 3.5/4.NET mono 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-这很有道理。