ref或值类,表示20000个对象的列表

| 我需要维护一个类的大约20000个对象的列表。此类将是c ++的托管包装。我想知道引用类还是值类是他们要走的路。 有人告诉我以下有关GC的优缺点 对于值类,有一个指向垃圾回收的点相对于带有指针的引用类,那里有20000个对象要进行垃圾回收。此外,没有用于值类的终结器或析构函数,因此这些对象不会最终到达单线程的终结器队列中。 在这两种情况下,对于大型对象列表,有人可以详细说明GC的功能吗?     
已邀请:
在回答我无法在SO上找到的问题时,@ Hans Passant建议一个.net结构(C ++ Cli的值类)最多应为16个字节。 所以不要犹豫,使用ref类。 这是一个有用的链接。     
绝对是使用引用类型最简单的方法-“不要让我思考”平衡的确可以这样提示 FWIW,我可以很完美地看到自己分配了大约2Mb的缓冲区来包含valuetype对象的数组。 问题是,这些必须转移多少次。如果仅用于查找表,则值对象数组将获得一些性能,也许还有其他好处[1]。这可能对'FlyWeight \'模式有用 只需注意仅将索引传递给此类对象,否则复制将很快使您的应用程序陷入困境 [1]例如快速序列化;与参考值的标识相反,数组索引在应用开发人员的控制之下。这样可以通过索引值对这样的查找项进行非常有效的“浅”序列化,这在整理类型的用例中很有用(代替实际整理完整的引用对象,您可以使用\'进行引用)您为此目的而设计的无处不在的常量ID \”)。     

要回复问题请先登录注册