.NET对象大小

.net中堆分配对象的大小是多少,包括管理开销? 我假设对象是沿着4字节边界分配的,还是使用了不同的方法?

x86上的4字节边界。 可能是x64上的8字节边界。

对于类型引用和同步块,x86上有8字节的开销。 在x64上发现12或16字节时我不会感到惊讶。

出于某种原因,在x86上,只有System.Object的实例看起来需要12个字节,使得12个字节成为绝对最小尺寸 – 但是带有int的类需要12个字节。 我不知道为什么会这样。

取决于机器,在32位机器上它通常是4字节。 但是,在64位盒子上,它是8字节,依此类推。