如果我有一个 500 MB RAM 和一个使用 malloc 分配 600 MB 内存的程序。
会发生什么,是否会使用虚拟内存的概念进行分配,如果是如何分配?
最佳答案
您并不总是有可用的磁盘空间用于虚拟内存,但一般来说,答案是肯定的,它正在到达那里。操作系统将为您进行分页,例如在 Linux 上创建的交换分区中。
无论哪种方式,您都可能会耗尽内存,如果有任何问题,您应该在您的应用程序中进行检查。
请注意,执行磁盘 I/O 比读取和写入实际 RAM 内存要慢得多。
我认为这应该让你继续:
Virtual memory combines your computer’s RAM with temporary space on your hard disk. When RAM runs low, virtual memory moves data from RAM to a space called a paging file. Moving data to and from the paging file frees up RAM so your computer can complete its work.
关于c++ - 如果 RAM 大小小于要求,则分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23321303/