C# 引用消耗多少内存

本文关键字:多少 内存 引用 | 更新日期: 2023-09-27 18:37:05

C# 引用消耗多少内存?引用消耗的内存是否与对象本身一样多?

C# 引用消耗多少内存

引用作为指针实现,因此在以 x86 模式(32 位)运行的应用程序中,引用为 4 个字节,而在 x64 模式(64 位)中,引用为 8 个字节。

由于引用只是指向对象的指针,因此无论引用指向什么,或者即使它根本不指向任何内容 (null),引用的大小都是相同的。

引用使用运行它的平台的本机字大小。

也就是说,32 位:32 位。64 位

:64 位。

所以不......你的对象可以是可变的,引用将永远如上。

摘自 C# 5.0 简而言之:第 22 页的权威参考;

引用类型需要为 引用和对象。对象消耗与其字段一样多的字节, 加上额外的管理开销。精确的开销是 本质上是 .NET 运行时实现的私有,但 开销至少为 8 个字节,用于将密钥存储到 对象的类型,以及临时信息,例如其锁定状态 用于多线程和指示是否已修复的标志 来自垃圾收集器的移动。对对象的每个引用 需要额外的四个或八个字节,具体取决于 .NET 是否 运行时在 32 位或 64 位平台上运行。