我知道这是一个常见问题,但我阅读了很多关于它的内容,但仍然无法决定哪个是我的案例更好的选择:
我需要设计一个具有相对较多原始字段的数据结构,例如“Person”,其中包含有关此人的大量信息。底层框架是 MS Orleans,预计在每个给定时间(在每台机器上)内存中都会有数十万个“Person”实例。起初我认为 struct 是更好的选择,因为 GC 压力和内存开销会更小。但是当我开始实现这个设计时,结果发现它很痛苦——“Person”有 4 个嵌套结构,每个都有大约 8 个字段(包括数组),而且我花了太长时间为每个实现 IEquatable,更不用说每一个微小的变化在其中一种结构中需要重构 IEquatable 实现和 ctors。
但后来我想,由于“Person”对象不会是短期对象,它们可能会被提升到第 1 代或第 2 代,所以 GC 压力可能没什么大不了的。至于(类的)内存开销 - 我可以忍受......
那么,任何人都可以分享他们对这个案例的看法吗?MSDN 建议不要对大于 32 字节的对象使用结构,我的对象很容易超过。