为什么 64 位版本的 Windows 比 32 位版本大?

为什么 64 位版本的 Windows 比 32 位版本大?

尺寸上的差异Windows 8 消费者预览版 ISO 映像,64 位和 32 位版本之间800Mb 或相差24%

我从未见过如此大的差异。

为什么会有这么大的差别呢?

答案1

造成尺寸差异的原因有多种:

  1. 64 位 Windows 包含一个转换层(Windows 64 位上的 Windows 32 位,或“WoW64“),允许它运行 32 位软件。
  2. 64 位 Windows 还包含各种程序(Internet Explorer)和库(在 WinSxS 文件夹中)的 32 位版本。正如评论中所述,这是大小差异的最重要原因。
  3. 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 中不加修改地运行。

相关内容