2011-05-12 54 views

回答

3

与LARGEADDRESSAWARE一个32位处理设置可以在64位Windows上寻址4GB。它可以这样做,因为这就是微软的精彩工程师实现它的方式。

它记录在here

+0

来自链接: 每32位进程的虚拟地址空间:2 GB,如果使用/ LARGEADDRESSAWARE开关编译应用程序,则为4 GB – 2011-05-16 16:17:00

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为你管理内存分配。

不过,如果你得到“内存不足”的错误开始考虑

  1. 我是否有泄漏的地方?你不是free'ing你的每一个指针malloc'ing WWirtyrous工具,如valgrind可以帮助找到那些。
  2. 我需要重新设计我的程序以使用更少的内存吗?你是否正在像保存从python或java中的数组中的大文件读出的每一行数据。寻找你可以扔掉的东西
+0

这是不同问题的答案吗? – 2011-05-12 18:06:26