2

我有一个 C++ 应用程序,当我观察任务管理器时,它表明应用程序的内存使用量逐渐增加。

我手动检查了我的源代码,并使用Visual Leak Detector for Visual C++来查找内存泄漏,但我找不到任何内容。是100%存在内存泄漏,我找不到它还是任务管理器误导我的可能性?

4

3 回答 3

4

它不是。它有多个内存统计选项(使用 View + Columns)并且版本很重要,但默认视图显示工作集。您的程序使用多少虚拟内存实际上是在 RAM 中。这是一个可以很快改变的统计数字。例如,只需最小化应用程序的主窗口。

它可以显示的 VM 大小也不是很好。该数字包括空闲堆块。获取实际使用的内存非常棘手,请阅读 SDK 文章中有关 HeapWalk 的小字。

它对泄漏检测毫无用处,除非你泄漏了它。

于 2010-08-12T12:59:20.480 回答
1

我使用Process Explorer作为任务管理器的替代品。它显示了 CPU/mem 使用的历史图表

于 2010-08-12T12:58:15.233 回答
0

我使用扩展任务管理器 http://www.warecase.com/products.asp

这对于调试目的很有用,尤其是检查线程是否存在以及其他此类情况。如果您的进程或应用程序有 pdb,它可以提供大量信息。

可能您可以使用 DevPartner 来识别内存泄漏。这是非常有用的。

于 2010-08-12T13:34:00.223 回答