glu*_*z78 49 windows memory-management
我知道在提交之前必须保留内存.当它被保留时,没有其他进程可以使用它.但是,保留的内存不计入可用的RAM.但不应该吗?因为如果没有其他人可以使用它,那么"可用"有什么用呢?
或者是否有更大的差异?
Gre*_*ill 49
在Win32的上下文中,"保留"表示地址空间在请求它的进程中分配.例如,这可以用于为大型缓冲区保留空间,而不需要立即使用,但是当需要它时,它需要是连续的.
保留内存根本不与其他进程交互,因为每个进程都有自己的私有地址空间.因此,"当它被保留,没有其他进程可以使用它"的声明是没有意义的,因为进程通常无法在另一个进程的地址空间中分配内存.
当请求提交保留页面(为它们分配后备存储)时,由于缺少物理内存(或页面文件),该操作可能会失败.
kao*_*sad 13
我喜欢查看Reserved
预订地址空间,以便其他人无法分配它(但我不能在该地址使用内存,因为它尚不可用).并且Committed
作为将空间寻址到物理内存以便可以使用的映射.
我为什么要保留?为什么不直接获得承诺?我有几个原因:
某些应用程序需要特定的地址范围,例如从0x400000到0x600000,但不需要内存来存储任何内容.它用于捕获内存访问.例如,如果某些代码访问了这样的区域,它将被捕获.(因某些原因有用.)
某些线程需要存储逐步扩展的数据.并且数据需要在一个连续的内存块中.最好不要一次性提供大的物理内存,因为它不需要并且会是一种浪费.一些其他线程首先可以使用内存.物理内存仅在需要时提交.
小智 6
过程虚拟内存(地址空间)和实际RAM都不同.您可以拥有512MB物理RAM,但您的进程仍可以处理4GB虚拟地址空间(2GB用户空间)进程中的每个地址都可以被视为在任何给定时间免费,保留或提交.
进程以所有地址空闲开始,这意味着它们可以自由地提交到内存或保留供将来使用.在使用任何空闲地址之前,必须首先将其分配为保留或提交.但是不需要保留它以便它被提交.
保留内存意味着为将来的目的保留virtaul地址空间.它与物理RAM(映射到RAM地址)无关.在提交内存意味着它将与实际RAM相关联,以便您可以在其中存储数据.
http://msdn.microsoft.com/en-us/library/ms810627.aspx
归档时间: |
|
查看次数: |
32675 次 |
最近记录: |