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

wiz*_*log 57 windows iso-image 64-bit

Windows 8 Consumer Preview ISO 映像在 64 位和 32 位版本之间的大小差异为800 Mb 或24%的差异。

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

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

rob*_*rob 77

尺寸差异有几个原因:

  1. 64 位 Windows 包含一个转换层(Windows 64 位上的 Windows 32 位,或“ WoW64 ”),允许它运行 32 位软件。
  2. 64 位 Windows 还包含 32 位版本的各种程序 (Internet Explorer) 和库(在 WinSxS 文件夹中)。正如评论中所指出的,这是尺寸差异的最重要原因。
  3. 64 位内存地址是 32 位内存地址的两倍,所以 64 位指针也是两倍长。大量使用指针的 64 位程序将明显大于 32 位程序。

第一个和最后一个原因几乎没有 64 位 Windows 附带的 32 位软件贡献那么多 - 但为了完整性,应该考虑它们。

  • 我看不出第 3 点将如何影响图像大小。很少有指针值被硬编码到源代码中。只有那些会占用软件二进制文件中的空间(而不是软件运行后的 RAM 映像)。 (27认同)
  • 对于 (1),在我的 Win7 Pro 安装中,所有 Wow64 .DLL 占用的空间都不到 1MB。对于(3),@KonradRudolph 是正确的。从 32 位到 64 位的内部代码膨胀没有真正的原因——一些操作码发生了变化,尽管大多数仍然只有 32 位宽(x86 是一种可变长度指令架构)。**大部分差异来自 (2)。** (10认同)
  • 其主要应得的点 1:.iso 中的 `sxs` 文件夹对于 32 位是 177m,对于 64 位是 315m。iso内`install.wim`中的`windows`文件夹为32位7.9g,64位11.9g。在该文件夹中,我们再次拥有“WinSxS”,32 位为 3.9g,64 位为 6.9g。并排的东西是这里最大的数据块,它适用于 64 位版本的 windows 中的 32 位和 64 位应用程序。拥有更大的二进制文件和一些双版本的应用程序对 iso 的大小几乎没有影响。 (4认同)
  • @akira `sxs` 文件夹与(2)有关,而不是(1)。并行程序集不是 WoW64 的一部分,尽管 32 位 DLL 是在*下* WoW64 执行的。但是,WinSxS 文件夹用于[为程序提供 32 位和 64 位二进制文​​件](http://msdn.microsoft.com/en-us/library/ms235342.aspx),这些文件需要相应的 DLL - 基本上具有DLL 的 32 位和 64 位版本。 (3认同)
  • @CrisStringfellow:没有人怀疑这一点。但是对 ISO 图像整体大小的 _effect_ 几乎为零。大小增加的主要部分是由提供 64 位和 32 位的东西(一些应用程序,大量的 dll [主要在 .iso 中的“WinSxS”文件夹中找到])引起的。 (3认同)
  • @horatio:“因此”的结论是错误的。资源管理器检查 NTFS 可用空间,这正确说明了连接。(您可以看到这一点,因为资源管理器需要 1 分钟以上的时间来汇总所有文件大小,但立即知道可用空间)。 (2认同)

HCL*_*HCL 11

在 64 位版本中,Microsoft 部署了其他软件。例如,有两个版本的 Internet Explorer(64 位和 32 位)。另一个例子是Win32-applications的整个运行时系统。
此外,二进制代码会变。可能这些的总和会产生很大的不同。


归档时间:

查看次数:

7924 次

最近记录:

12 年,12 月 前