【发布时间】:2011-07-21 07:30:42
【问题描述】:
我一直在跟踪我的应用程序中的一些内存泄漏。这是一个真正的痛苦,但我终于收紧了一切。但是,有一点 Windows 内存管理让我感到困惑。这是应用程序的内存使用情况随时间推移的打印输出...
Time PrivateMemorySize64 WorkingSet64
20:00:36 47480, 50144
20:01:06 47480, 50144
20:01:36 47480, 50144
20:02:06 47480, 149540
20:02:36 47480, 149540
20:03:06 47480, 149540
工作集在 30 秒内从 49 MB 跃升至 146。这在一夜之间发生了,因为应用程序基本上什么都不做。
工作集(这是任务管理器向我显示的)似乎能够受到其他应用程序(如调试器)的影响(正如我在寻找内存泄漏时了解到的那样)。在阅读了关于工作集是什么的文档后,我仍然没有很好的理解。
感谢任何帮助。
更新:感谢响应者提供的一些链接以及一些额外的搜索,我对单独的流程如何导致我的流程的工作集增长有了更好的了解。很高兴知道工作集中的峰值并不一定表明您的应用程序正在泄漏......进一步的理由不依赖任务管理器进行内存评估:)
有用的链接:
A few words on memory usage or: working set vs. private working set
【问题讨论】: