0

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

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

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

4

2 回答 2

0

不会。分配的块是已提交内存的一部分。

于 2013-11-03T12:49:50.183 回答
0

这是我拿的高级Windows调试书,不确定你的意思,因为你在最后有点模糊,但它的基本意思如下:

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

这一切都大大简化了,我建议阅读以下来源:

作为让您开始了解内存及其在 C++ 中的使用的良好资源。

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

于 2013-11-03T12:59:42.193 回答