【发布时间】:2013-07-03 19:15:29
【问题描述】:
我在具有 12 GB RAM 的 Windows 操作系统上运行大量内存密集型作业。根据我的计算,4 GB 的内存应该足以运行该程序。我正在使用 CodeBlocks 运行我使用动态内存分配编写的程序(我有两个 C 和 C++ 版本的程序,分别为 malloc/free 和 new/delete)。
当我打开任务管理器时,我看到该程序似乎只使用了大约 2 GB 的 RAM,即使我有更多可用内存,并且页面文件大小当前设置为 30 GB。有什么办法可以让 CodeBlocks 使用更多内存?我还使用了 DEV-C++,并且在 C++ 代码中遇到了同样的 bad_alloc 错误。
有什么想法吗?提前致谢。 哦,我使用的是 64 位 Windows 7。
【问题讨论】:
-
我假设您使用的是 32 位版本的 Windows,在这种情况下答案是否定的。如果您使用的是 64 位版本的 Windows,您可以构建一个 64 位二进制文件来提供对所有系统内存的访问。
-
我使用的是 64 位 windows os 7。
-
听起来你正在为 32 位目标编译。你到底使用的是哪个编译器?
-
您需要创建一个 64 位程序以利用 64 位操作系统上进程可用的大虚拟内存地址空间。
-
默认情况下,32 位进程使用 2gb 的用户可访问地址空间创建,有一种方法可以将默认值增加到 3gb。 64 位应用程序不应该有这个限制 - 正如有人已经提到的那样,您很可能正在构建一个 32 位可执行文件。
标签: c++ c windows memory 32bit-64bit