【发布时间】:2013-10-26 20:07:00
【问题描述】:
C# 引用消耗多少内存? 引用和对象本身一样消耗内存吗?
【问题讨论】:
C# 引用消耗多少内存? 引用和对象本身一样消耗内存吗?
【问题讨论】:
引用以指针的形式实现,因此在 x86 模式(32 位)下运行的应用程序中,引用为 4 个字节,而在 x64 模式(64 位)中,引用为 8 个字节。
由于引用只是指向对象的指针,因此无论它指向什么,或者即使它根本不指向任何东西(null),引用都是相同的大小。
【讨论】:
引用会消耗它所运行平台的原生字大小。
即32位:32位。 64 位:64 位。
所以不..您的对象的大小可以是可变的..引用将始终如上。
【讨论】:
来自第 22 页中的C# 5.0 in a Nutshell: The Definitive Reference;
引用类型需要为 参考和对象。该对象消耗与其字段一样多的字节, 加上额外的管理开销。精确的开销是 本质上对 .NET 运行时的实现是私有的,但是 开销至少为 8 个字节,用于存储 对象的类型,以及锁状态等临时信息 用于多线程和一个标志以指示它是否已被修复 来自垃圾收集器的移动。 每次引用一个对象 需要额外的 4 或 8 个字节,具体取决于 .NET 运行时在 32 位或 64 位平台上运行。
【讨论】: