答案1
造成尺寸差异的原因有多种:
- 64 位 Windows 包含一个转换层(Windows 64 位上的 Windows 32 位,或“WoW64“),允许它运行 32 位软件。
- 64 位 Windows 还包含各种程序(Internet Explorer)和库(在 WinSxS 文件夹中)的 32 位版本。正如评论中所述,这是大小差异的最重要原因。
- 64 位内存地址的长度是 32 位内存地址的两倍,因此 64 位指针的长度也是两倍。大量使用指针的 64 位程序将明显大于 32 位程序。
第一个和最后一个原因并不像 64 位 Windows 附带的 32 位软件那样重要 - 但为了完整起见,它们应该被考虑。
答案2
在 64 位版本中,微软部署了额外的软件。例如,有两个版本的 Internet Explorer(64 位和 32 位)。另一个例子是Win32 应用程序。
此外,二进制代码将获得大。可能这些加起来就会产生很大的不同。
答案3
由于以下几个原因,64 位版本通常比 32 位版本更大。
首先要考虑的是编译器的类型和软件执行的运行时环境。如果软件是使用生成本机代码的编译器构建的,并且无需运行时环境即可运行,则生成的代码大小可能会有细微的差异,这与 CISC 处理器中较大的指令集有关。
其次,如果软件被编译为在运行时环境(例如.NET)下运行,您将看不到任何大小差异,因为编译器生成相同的(中间)代码。
最后,64 位版本的 Windows 包含完整的 64 位版本以及一些 32 位版本的对应部分。这是必需的,因为有些软件是 32 位的,需要在 64 位 Windows 中不加修改地运行。