C++的内存分配限制

0 c++ memory-management

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

Oli*_*rth 7

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


bet*_*ido 5

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

我们现在假设你有4 GB的RAM.在这种情况下,由于使用了swap(硬盘区域,其中内存被换入和换出以扩大虚拟内存大小),因此您很可能能够执行该程序.但是,即使它实际上可以工作,它也可能运行得非常慢(直到达不到真正可用的程度)因为垃圾.

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

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