代码之家  ›  专栏  ›  技术社区  ›  Jader Dias

在64位系统中,32位变量比64位对象占用的空间小?

  •  2
  • Jader Dias  · 技术社区  · 16 年前

    .NET框架为 Int32 比A Int64 在64位系统中?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Remus Rusanu    16 年前

    Int32和Int64应该在所有平台上使用相同的空间(这意味着Int32与x86和x64上的另一个Int32消耗的空间相同)。在所有平台上,Int32的消耗量应与Int64不同。

    但是,由于int32和int64都是结构,因此它们都是较差的示例。对象在x64和x86上消耗的空间明显不同,因为它们基本上是指针,而x64上的指针的宽度是x86上的两倍。这适用于函数地址、跳转地址、vtables、调用指令等。X64编译的应用程序和用于X64的IL应用程序JIT代码将显著大于其x86对应程序。过去,x86代码生成更为成熟,优化也更为激烈,这仅仅是因为编译器更为成熟(这也适用于JIT代码生成),但是编译器赶上了,现在,X64优化已经达到了标准,如果不比x86优化好的话。

        2
  •  1
  •   Lucas B    16 年前

    不,它们消耗相同的空间量,因为最小的可寻址空间是64位。

    推荐文章