如果RAM大小小于要求,则分配内存

时间:2014-04-27 08:51:00

标签: c++ windows memory-management virtualization ram

如果我有一个500 MB的RAM和一个使用malloc分配600 MB内存的程序 会发生什么,是否会使用虚拟内存的概念进行分配,如果是,如何?

2 个答案:

答案 0 :(得分:2)

你并不总是有可用的虚拟内存磁盘空间,但总的来说,答案是肯定的,它已经到了那里。操作系统将为您进行分页,例如在Linux上创建的交换分区中。

无论哪种方式,你可能会耗尽内存,如果有任何问题,你应该在你的应用程序中检查它。

请注意,执行磁盘I / O要比读取和写入真正的RAM内存慢得多。

我认为这应该让你前进:

What is virtual memory?

  

虚拟内存将计算机的RAM与硬盘上的临时空间相结合。当RAM运行不足时,虚拟内存将数据从RAM移动到称为分页文件的空间。将数据移入和移出分页文件可以释放RAM,这样您的计算机就可以完成其工作。

答案 1 :(得分:1)

在最坏的情况下,Windows会警告您内存耗尽,并会自动关闭大多数昂贵的程序。 Windows使用交换“保存”程序现在还没有使用,但它仍然在RAM中。