根据微软,64位和32位Windows的页面文件大小分别为256TB和16TB。
在 64 位中,虚拟地址如下所示:
通过 4 级 9 位内存映射字段和页内 12 位偏移量,64 位 Windows 最多可以映射 2 9+9+9+9+12字节 = 256 TB。
在32位中,虚拟地址如下所示:
有了 2 级 10 位内存映射字段和页面内 12 位偏移量,32 位 Windows 应该能够映射最大 2 个10+10+12字节 = 4GB?那为什么是 16TB?
答案1
你的算术是正确的:2 的 32 次方等于 4 GB。
但是,文件的大小是按块来计算的。
如果一个块的大小为 4 K(这是 NTFS 的标准),则最大大小(以字节为单位)为:
4 GB x 4 K = 16 TB
答案2
你的方程式中考虑过 PAE 吗?
它说这里在 boot.ini 文件中添加 /PAE(或 /pae)参数可以使 32 位 Windows 中的页面文件更大,最高可达 16TB。