![64 位 Windows 7 上的 32 位应用程序内存使用情况](https://linux22.com/image/1338493/64%20%E4%BD%8D%20Windows%207%20%E4%B8%8A%E7%9A%84%2032%20%E4%BD%8D%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5.png)
我有一台 2012 年初的 Macbook Pro,配备 Intel i7 处理器和 16 GB RAM,通过 Bootcamp 运行 Windows 7 Professional 64 位。我从事地理信息系统 (GIS) 程序员工作,因此我运行的大多数应用程序都是 32 位应用程序,但往往会占用大量资源(例如 ArcGIS、SQL Server Express、Visual Studio 等)。
我注意到,当我拥有同一个 32 位应用程序或不同的 32 位应用程序的多个实例,并且它们都在执行繁重的处理任务时,我的内存使用量仍然只有 30% 左右。
我知道 32 位应用程序限制使用少于 4GB 的 RAM,但我认为一个实例可以使用其自己的 4GB,而另一个实例可以使用另外 4GB 来充分利用我已安装的所有内存。
有人能解释一下这是如何工作的以及如何让我的应用程序通过运行多个实例来充分利用我的所有内存吗?
答案1
应用程序(无论是 32 位还是 64 位等)都只会使用其所需的内存量。不多也不少。如果它不需要 4GB 的 RAM,它就不会使用 4GB 的 RAM。
人们普遍误以为 64 位应用程序比 32 位应用程序占用两倍的内存。这不是真的
为应用程序指定的“位”只是表明它可以有多少虚拟地址空间使用权. 这与它有多少内存不同需求以获得良好的表现。
当内存过剩时,应用程序的性能不会更好。理论上,使用 32MB RAM 的应用程序在具有 1GB 可用内存的系统或具有 16GB 可用内存的系统中的性能相同;无论位大小如何。