如何在Windows上进行内存分析?

bas*_*ibe 5 c++ profiling memory-leaks memory-management visual-studio

可能重复:
Windows下用于C ++的内存泄漏工具

我曾经在Mac项目上工作,而我对XCode真正喜欢的一件事就是它的分析器。通过使用该探查器的各种设置运行程序,我发现了许多错误。最值得注意的是,它将向我显示程序的哪些部分消耗了内存,向我显示了是否泄漏了内存,并且向我显示了何时执行此操作。如果我使用的是GUI应用程序,它甚至会向我显示这些分配/泄漏/解除分配发生时我在做什么的屏幕截图。

如今,我正在使用Visual Studio处理Windows / C ++项目,我怀疑该项目消耗过多的内存,并且可能还会泄漏一些内存。使用XCode,我只需启动该探查器,即可立即知道发生了什么。但是,在Visual Studio中,我找不到这样的东西(这里有一个有点尴尬的性能分析器,但是这里我不关心CPU时间)。

那么,您将如何寻找内存消耗过多的泄漏和代码?

Ale*_*ski 5

一般请参阅应用程序验证器、LeakDiag、UMDH 和Windows 调试工具。

所有这些都是免费的。

有关如何使用它们的指南,请参阅高级 Windows 调试


Mad*_*uja 1

VS 中没有用于非托管应用程序内存分析的内置工具。

对于其他第三方工具,请参阅这篇文章: Is it possible to detector GDI Leaks from the Visual Studio debugger?