.NET对象大小
.net中堆分配对象的大小是多少,包括管理开销? 我假设对象是沿着4字节边界分配的,还是使用了不同的方法?
x86上的4字节边界。 可能是x64上的8字节边界。
对于类型引用和同步块,x86上有8字节的开销。 在x64上发现12或16字节时我不会感到惊讶。
出于某种原因,在x86上,只有System.Object
的实例看起来需要12个字节,使得12个字节成为绝对最小尺寸 – 但是带有int
的类也需要12个字节。 我不知道为什么会这样。
取决于机器,在32位机器上它通常是4字节。 但是,在64位盒子上,它是8字节,依此类推。