.NET Framework为Int32
分配的内存少于64位系统中Int64
的内存?
答案 0 :(得分:1)
不,它们消耗相同的空间量,因为最小的可寻址空间是64位。
答案 1 :(得分:1)
答案 2 :(得分:1)
Int32和Int64应该在所有平台上使用相同的空间(意味着Int32在x86和x64上消耗的数量与另一个Int32相同)。在所有平台上,Int32应使用与Int64不同的数量。
然而,Int32和Int64都是不好的例子,因为它们是结构体。对象在x64与x86上消耗的空间明显不同,因为它们基本上是指针,x64上的指针是x86上的两倍。这适用于函数地址,跳转地址,vtable,调用指令等等。 x64编译的应用程序和x64的IL应用程序JIT代码将远远大于其x86对应程序。过去也是因为编译器更加成熟(这也适用于JIT代码生成),x86代码生成更加成熟并且更加积极地进行优化,但编译器赶上了,现在x64优化已经达到标准,如果不比x86更好。