Windows堆管理器和堆段

时间:2013-11-03 12:34:22

标签: c++ c windows internals

我在一本书中找到了以下句子:

  

每当堆管理器用尽堆空间中的已提交空间时   显式提交更多内存并将新提交的空间划分为块   因为要求越来越多的分配

这是否意味着当在块中分配块时,用户使用的虚拟内存和元数据不再被视为已提交?

2 个答案:

答案 0 :(得分:0)

没有。分配的块是已提交内存的一部分。

答案 1 :(得分:0)

这是我从高级Windows调试书中看到的,不知道你的意思是什么,因为你到底有点模糊,但它的基本含义如下:

当您分配堆空间时,堆的内容不一定是预先确定的,因此您可以根据需要使用分配的空间:例如,我分配1兆字节的堆内存,然后我决定填充只有512k或数据的空间,这意味着我已经提交了一半的已分配堆,剩下512k空闲。该内存仍将显示为用于操作系统,因为我已明确将堆分配设置为1024k,但是下次使用相同的空间时,我可以使用比上次使用的512k更多或更少的空间,达到我拥有的数量分配使用。您在给定点使用的金额是提交,您预留的金额是分配。

这简化得非常简单,我建议您阅读以下来源:

作为很好的资源来帮助您开始使用内存及其在C ++中的使用。

如果您可以想到任何具体或更多细节(您的问题有点不清楚),请告诉我,我会尽快回复您。