2

我认为 32 位进程最多可以使用 2GB RAM,因为一半的地址空间是为操作系统保留的(使用 /3GB 开关可能是 3GB)。然而,星际争霸 II 设法使用了将近 4GB 的空间,而且它是一个 32 位的 EXE。进程资源管理器显示:

4,000,896 KB private bytes
3,928,164 KB working set

它是如何做到的,我如何在自己的程序中做到这一点?在.NET中是否可能?在非托管 C++ 中?以某种方式在托管 C++ 中?

4

1 回答 1

2

在 64 位操作系统上,32 位进程几乎可以使用 4GB。

标记为“大地址空间感知”的进程在 32 位操作系统中最多可以使用 3GB,在 64 位操作系统中最多可以使用完整地址空间。

这里有更多的讨论:Can a 32bit process access more memory on a 64bit windows OS? .

于 2012-06-30T04:51:24.873 回答