Windows堆管理器和堆段

我在书中发现了以下句子:

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

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


这是我从高级的Windows调试手册中得到的,不确定你的意思,因为你在最后得到了一些模糊的内容,但是它的基本含义如下:

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

这是非常简单的,我会建议阅读这样的来源:

  • stack-memory-vs-heap-memory从这里开始
  • 学习CPP的堆栈和堆
  • 来自CBootCamp的Memory_Stack_vs_Heap
  • 作为开始使用C ++的内存和其使用情况的良好来源。

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


    编号分配的块是承诺内存的一部分。

    链接地址: http://www.djcxy.com/p/79799.html

    上一篇: Windows heap manager and heap segments

    下一篇: Objects created inside a method