在Windows上测量内存分配有哪些好工具?

时间:2009-04-09 02:53:19

标签: c++ windows allocation

我有一个应用程序随着时间的推移不断消耗越来越多的内存(同时主动运行),但没有泄漏。所以我知道程序没有做错的事情,这很容易找到。

相反,我想跟踪分配,以便我可以开始追踪问题,而在Mac上我会使用Instruments,它会详细介绍已分配的对象以及由谁分配,但在Windows上我会是什么?使用?

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

谢谢!

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

3 个答案:

答案 0 :(得分:2)

内存验证器非常适合您。 http://www.softwareverify.com/cpp/memory/index.html

答案 1 :(得分:1)

Glowcode is here.它拥有世界上最糟糕的用户界面。如果你有足够的耐心去试图让它正常工作的恐怖,那么内部人员就有了这些东西。有21天的免费试用期。我发现它是一个救星,但你真的不得不想找到那个bug。

答案 2 :(得分: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