在 64 位系统中,.NET Framework 为 Int32
分配的内存比为 Int64
分配的内存少?
最佳答案
Int32 和 Int64 在所有平台上应该消耗相同的空间(这意味着 Int32 在 x86 和 x64 上与另一个 Int32 消耗相同的空间)。在所有平台上,Int32 应该消耗与 Int64 不同的数量。
但是,Int32 和 Int64 都不是很好的例子,因为它们是结构体。 x64 和 x86 上的对象消耗的空间显着不同,因为它们基本上是指针,并且 x64 上的指针宽度是 x86 上的两倍。这适用于函数地址、跳转地址、虚函数表、调用指令等等。 x64 编译的应用程序和 x64 的 IL 应用程序 JIT 代码将比 x86 对应的代码大得多。过去,x86 代码生成更成熟,优化更积极,只是因为编译器更成熟(这也适用于 JIT 代码生成),但编译器迎头 catch ,现在 x64 优化已达到同等水平,如果不比 x86 更好的话。
关于.net - 在64位系统中,32位变量占用的空间比64位对象少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435160/