我在运行我的程序时遇到了这个问题:
因此,当内存消耗增加时,我的程序驱动的硬件(马达)反应非常缓慢。
我很困惑。这是内存泄漏吗?
我知道很难确定问题在哪里,但我应该如何看待这个问题,有什么共同的逻辑吗?或者任何常用的工具?就像检查进气泄漏/系统倾斜在汽车上通常是从管道,质量气流传感器,或O2传感器.
非常感谢!
发布于 2013-10-25 17:47:44
内存Profiler为我工作:
内存探查器试用版下载
这是试用版,我喜欢。
发布于 2013-10-24 22:23:46
您可以尝试几种方法--尝试运行Sysinternals tool (进程监视器v3.2),并在windows平台上运行时正确配置符号路径和源代码路径。日志很可能会告诉您导致泄漏的行号和源。您需要知道如何使用进程监视器并在日志中导航。
否则,您也可以尝试下面的CRT来跟踪内存分配/去分配,并提出内存泄漏转储以供进一步研究。以下代码仅在调试模式下工作。
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#define new DBG_NEW
#endif
#endif // _DEBUG
_CrtMemState crtMemStateStart;
_CrtMemState crtMemStateFinish;
_CrtMemCheckpoint(&crtMemStateStart);
// Your suspisious code
_CrtMemCheckpoint(&crtMemStateFinish);
int nDifference(0);
_CrtMemState crtMemStateDifference;
nDifference = _CrtMemDifference(&crtMemStateDifference, &crtMemStateStart, &crtMemStateFinish);
if(nDifference > 0)
_CrtDumpMemoryLeaks();有关更多信息,请参见此链接:使用CRT库查找内存泄漏
记住,内存泄漏可能有点棘手,特别是如果涉及到COM代码。但是拥有正确的知识和工具肯定会让生活变得容易一些。
https://stackoverflow.com/questions/19577638
复制相似问题