Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET对象大小_C#_.net_Memory_Memory Management - Fatal编程技术网

C# .NET对象大小

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个字节。我

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

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

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

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


出于某种原因,在x86上,just
System.Object
的实例似乎需要12个字节,这使得12个字节成为可能的绝对最小大小-但是具有
int
的类也需要12个字节。我不知道为什么会这样。

请看:Jon B:这个问题是关于.NET中任何对象的大小,而这个问题是关于.NET对象类实例的大小。一个完全不同的问题。我认为你谈论的是引用的大小,而不是开销本身。你不应该能够很好地回答高层次和低层次的问题。我用一个新标签重新开始:截击双向飞碟。在这种情况下,这个问题就是双向飞碟的最后一个问题:失败。那个标签没持续多久。;-)有花纹的。我想我会试试。:)