1

我有一个应用程序随着时间的流逝(在积极运行时)不断消耗越来越多的内存,但没有泄漏。所以我知道该程序并没有做完全错误的事情,这很容易找到。

相反,我想跟踪分配,以便我可以开始跟踪问题,在 Mac 上我会使用 Instruments,它提供了分配哪些对象以及由谁分配的详细配置文件,但在 Windows 上我会使用什么?

目前我正在使用 VS2005 在 Windows XP 上使用 C/C++。因此,任何用于此设置的工具都会很棒,希望免费或至少提供几周试用的工具,因为如果需要,完成任何购买(公司产品)需要一段时间,而且我有最后期限。

谢谢!

编辑:我正在使用 VLD,所以我知道程序没有泄漏,但它似乎占用了比需要更多的内存,并且没有返回它,所以我需要跟踪分配,而不是泄漏。

4

3 回答 3

2

内存验证器将是您的理想选择。 http://www.softwareverify.com/cpp/memory/index.html

于 2009-04-09T03:07:32.120 回答
1

发光代码在这里。它拥有世界上最糟糕的用户界面。不过,如果你有耐心克服试图让它正常工作的恐怖,内部就有这些东西。有 21 天的免费试用期。我发现它是一个救命稻草,但你真的必须要找到那个错误。

于 2009-04-09T03:01:08.750 回答
0

Visual Studio 启用内存泄漏检测

检测内存泄漏的主要工具是调试器和 CRT 调试堆函数。要启用调试堆函数,请在程序中包含以下语句:

#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

http://msdn.microsoft.com/en-us/library/e5ewb1h3(VS.71).aspx

于 2009-04-09T03:05:46.443 回答