C ++的内存分配限制

时间:2012-06-09 22:32:22

标签: c++ memory-management

我想运行这个在内存中使用高达8.3 GB的巨大C ++项目。我可以在某些情况下运行此程序,还是不可能?

3 个答案:

答案 0 :(得分:7)

没关系。您只需要使用64位架构,并确保有足够的交换空间+可用的物理内存

答案 1 :(得分:5)

这取决于。如果程序需要始终拥有内存中的所有8.3 GB(working size),则可能需要在计算机中安装相似数量的内存。

现在假设您有4 GB的RAM。在这种情况下,由于使用了swap(硬盘区域,其中存储器被换入和换出以扩大虚拟内存大小),因此您很可能能够执行该程序。但是,即使它实际上可行,但由于trashing,它可能运行得非常慢(直到不可用的点)。

另一方面,如果您的程序处理8.3 GB的数据,但是它在较小的中处理,则意味着所有数据始终不在内存中。然后,您不需要在计算机中安装如此大量的RAM。

正如Oli Charlesworth提到的那样,如果要安装超过4 GB的系统,则需要64位系统(硬件和操作系统)或者至少需要具有PAE功能的系统系统中的RAM

答案 2 :(得分:2)

是的,这是可能的。您需要处于64位环境中,当然,还有可用的RAM。您可能仍然无法一次分配超过4GB的连续地址空间。但是,您可能必须以较小的块分配它。