C# .NET对象大小
在.net中,堆分配对象的大小是多少,包括管理开销?我假设对象是沿着4字节边界分配的,或者使用了不同的方法?取决于机器,在32位机器上通常是4字节。但是,在64位框上,它是8字节,依此类推。x86上的4字节边界。x64上可能有8字节边界 x86上有8字节的开销,用于类型引用和同步块。如果发现x64上有12或16个字节,我不会感到惊讶C# .NET对象大小,c#,.net,memory,memory-management,C#,.net,Memory,Memory Management,在.net中,堆分配对象的大小是多少,包括管理开销?我假设对象是沿着4字节边界分配的,或者使用了不同的方法?取决于机器,在32位机器上通常是4字节。但是,在64位框上,它是8字节,依此类推。x86上的4字节边界。x64上可能有8字节边界 x86上有8字节的开销,用于类型引用和同步块。如果发现x64上有12或16个字节,我不会感到惊讶 出于某种原因,在x86上,justSystem.Object的实例似乎需要12个字节,这使得12个字节成为可能的绝对最小大小-但是具有int的类也需要12个字节。我
出于某种原因,在x86上,just
System.Object
的实例似乎需要12个字节,这使得12个字节成为可能的绝对最小大小-但是具有int
的类也需要12个字节。我不知道为什么会这样。请看:Jon B:这个问题是关于.NET中任何对象的大小,而这个问题是关于.NET对象类实例的大小。一个完全不同的问题。我认为你谈论的是引用的大小,而不是开销本身。你不应该能够很好地回答高层次和低层次的问题。我用一个新标签重新开始:截击双向飞碟。在这种情况下,这个问题就是双向飞碟的最后一个问题:失败。那个标签没持续多久。;-)有花纹的。我想我会试试。:)