我是否应该在以下情况下使用Class或Struct(具有许多字段的数据结构)?

时间:2015-07-05 07:14:07

标签: c# struct garbage-collection orleans

我知道这是一个经常出现的问题,但我读了很多关于它的内容,仍然无法确定哪种情况更适合我的情况:

我需要设计一个具有相对较多原始字段的数据结构,比如'Person',其中包含有关该人的大量信息。底层框架是MS Orleans,预计在每个给定时间(每台机器上)内存中会有数十万个“Person”实例。起初我认为struct是更好的选择,因为GC压力和内存开销会减少。但是当我开始实现设计时,结果却是一种痛苦 - “人物”有4个嵌套结构,每个结构有8个字段(包括数组),我花了太长时间为每个实现IEquatable,没有提到每个小的变化在其中一个结构中需要重构IEquatable实现和ctors。

但后来我认为既然'人'对象不会是短命的物体,它们可能会升级到第1代或第2代,所以GC的压力可能不大。至于内存开销(类) - 我可以忍受......

那么,任何人都可以分享他们对此案的看法吗? MSDN建议不要对大于32字节的对象使用结构,我的对象很容易超过。

0 个答案:

没有答案