3

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

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

是什么导致了工作集中的额外内存?

我怀疑它可能是 dll 加载,但我怎样才能确认这一点并将其分解?

4

1 回答 1

0

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

于 2011-10-27T03:35:16.870 回答