如何获得正确的物理内存和虚拟内存

时间:2010-12-23 02:27:43

标签: visual-c++

我使用这个Windows API, http://msdn.microsoft.com/en-us/library/aa366589(v=vs.85).aspx GlobalMemoryStatusEx获取内存信息 我的电脑总体内存是4096MB,为什么程序会显示3.XG 我的电脑的虚拟内存是3063MB,但我使用显示2047MB的程序 我的开发环境是视觉工作室2008 如何修改这个问题

感谢

2 个答案:

答案 0 :(得分:0)

其他程序是否也使用您的系统?我怀疑你“失踪”的记忆是由于操作系统本身以及你正在运行的其他程序造成的。查看是否打开了一堆其他应用程序会更改程序能够看到的虚拟内存大小。

答案 1 :(得分:0)

假设您运行的是32位版本的Windows,那么这是Windows本身的限制。请参阅此details的Microsoft页面。默认情况下,您只能在一个进程中访问2GB的RAM。 visual studio中有一个编译器开关,可以访问3GB。这是/ LARGEADDRESSAWARE开关。除此之外,您只需升级到64位操作系统即可。

顺便说一句,你没有自动获得4GB地址空间的基本原因是因为它的一部分是为操作系统保留的。那些系统调用和对操作系统资源的引用必须存在于某个地方。

相关问题