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

标签 c++ windows memory-management virtualization ram

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

最佳答案

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

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

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

我认为这应该让你继续:

What is virtual memory?

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/

相关文章:

c++ - 调用基类构造函数

c++ - 就地 C++ 设置交集

使用大量内存的 Java 应用程序。使用-Xmx?

c++ - 使用指针处理动态结构表

c++ - 使用许多嵌套循环重写代码

windows - Google Cloud SDK 安装程序在 Windows 7 上失败(gcloud 崩溃(UnicodeDecodeError))

node.js - 使用 PowerShell Invoke-Command 和 Process 使 stdout 显示在控制台上

windows - 为什么 WinVerifyTrust 和 sigcheck 不同意文件是否有签名?

java - 在 java 中解析非常大的 XML 文档(以及更多)

java - 使用普通对象指针(OOP)在32位模式下但在64GB RAM上运行Java应用程序