【问题标题】:Windows heap manager and heap segmentsWindows 堆管理器和堆段
【发布时间】:2013-11-03 12:34:21
【问题描述】:

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

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

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

【问题讨论】:

标签: c++ c windows internals


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2021-04-28
      • 2017-04-28
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多