堆大小(由 umdh 报告)和(私有)工作集(由任务管理器报告)之间的差异的原因是什么

What accounts for the difference between the size of the heap (as reported by umdh) and the (private) working set (as reported by task manager)?

本文关键字:报告 是什么 之间 私有 umdh 工作集 任务管理器      更新时间:2023-10-16

C++在Windows 7上运行的本机代码。VS2008.

我的应用程序上的特定状态更改将工作集(私有工作集)从 16Mb(6.5Mb) 增加到 38Mb(22Mb)。由于这似乎过多,我使用 umdh 检查了堆更改。我发现之前和之后的堆之间的差异增加了~9Mb。

工作集中的额外内存由什么原因?

我怀疑它可能正在加载 dll 中,但我如何确认这一点并对其进行分解?

当应用程序请求内存时,窗口提供的内存远远超过它请求的内存,以便来自所有应用程序的后续请求不会导致过多的碎片。 例如,您一次要求 1 个字节,您的工作集不会一次增长 1 个字节,也不会在一次镜头时按页面增长 1 个字节,但一次可能按兆字节增长。 工作集是物理内存中的页。 此外,如果其他东西需要,窗户可以将多余的东西从您身上带走。