当使用LARGEADDRESSAWARE标志时,我的32位程序可以访问4GB的地址空间,还是只有3GB的地址空间? 为什么?在Windows 7 64bit上,32位程序可以访问多少地址空间?
0
A
回答
3
与LARGEADDRESSAWARE一个32位处理设置可以在64位Windows上寻址4GB。它可以这样做,因为这就是微软的精彩工程师实现它的方式。
它记录在here。
0
2
也许anwser is there
一个32位程序将访问2GB RAM,与LARGEADDRESSAWARE标志,它到达4GB
+0
是的,基本上它是同一个问题,谢谢。 – 2011-05-16 16:20:21
0
在大多数操作系统中,你的32位空间被分解成你程序(用户代码)可以分配和使用的部分,以及内核拥有的部分。除非你正在编写你自己的操作系统/内核,让系统API(例如malloc/free,C/C++中的新/删除)或python中的底层管理,Java为你管理内存分配。
不过,如果你得到“内存不足”的错误开始考虑
- 我是否有泄漏的地方?你不是free'ing你的每一个指针malloc'ing WWirtyrous工具,如valgrind可以帮助找到那些。
- 我需要重新设计我的程序以使用更少的内存吗?你是否正在像保存从python或java中的数组中的大文件读出的每一行数据。寻找你可以扔掉的东西
+0
这是不同问题的答案吗? – 2011-05-12 18:06:26
来自链接: 每32位进程的虚拟地址空间:2 GB,如果使用/ LARGEADDRESSAWARE开关编译应用程序,则为4 GB – 2011-05-16 16:17:00