社区
界面
帖子详情
请问没有没有资源泄露检测的工具推荐的?
HongHuer
2010-06-11 03:48:54
最近有个软件貌似有资源泄露,不确定应该怎么找。
想找个工具来检测下。
谢谢推荐。
...全文
213
8
打赏
收藏
请问没有没有资源泄露检测的工具推荐的?
最近有个软件貌似有资源泄露,不确定应该怎么找。 想找个工具来检测下。 谢谢推荐。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alicktony
2010-06-12
打赏
举报
回复
[Quote=引用 5 楼 honghuer 的回复:]
据我浮浅的理解。vld是检测对内存泄露的吧。
请指教:对gdi资源的泄露可以检查么?
[/Quote]
好像不能
HongHuer
2010-06-12
打赏
举报
回复
据我浮浅的理解。vld是检测对内存泄露的吧。
请指教:对gdi资源的泄露可以检查么?
delphiwcdj
2010-06-12
打赏
举报
回复
用过BounderCheck还不错,有两种模式,很容易上手。也可以自己写代码,转一下别人的:
VC程序内存泄漏检测(转载)
1. 包含头文件和定义:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
如果定义了_CRTDBG_MAP_ALLOC,打印出来的是文件名和行数等更加直观的信息。
2. 方法一
在程序入口写几个语句:
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag( tmpFlag );
程序退出时,如果发现有内存泄漏,会自动在DEBUG OUTPUT窗口和DebugView中输出内存泄漏信息。
Ex.
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
int main(int argc, char* argv[])
{
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag( tmpFlag );
int* p=new int[2];
//delete [] p;
return 0;
}
3. 方法二
在程序任何地方用以下语句:
_CrtDumpMemoryLeaks();
随时检测打印内存泄漏信息,如果有的话。不过此用法有个局限,对于一些全局函数,如果初始化时申请了内存,到程序结束时候才释放,此函数会一直把新申请的内存当作泄漏来对待。
4. 方法三
使用_CrtMemCheckpoint方法,在某段程序中统计泄漏信息。如下:
_CrtMemState s1, s2, s3;
_CrtMemCheckpoint( &s1 );
// 程序段1:DO SOMETHING
_CrtMemCheckpoint( &s2 );
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
可以统计程序段1中是否发生了内存泄漏。
Ex.
void CMfcmemleakDlg::OnOK()
{
// TODO: Add extra validation here
_CrtMemState s1, s2, s3; // 声明内存状态结构变量
_CrtMemCheckpoint( &s1 );// 获取第一个内存状态快照
// 在这里进行内存分配
char* p = new char[2];
p[0] = 'A';
p[1] = 'B';
_CrtMemCheckpoint( &s2 );// 获取第二个内存状态快照
// 比较两个内存快照的差异
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );// dump 差异结果
// 输出内存泄漏报告,显示在 Output 窗口的 Debug 页中
_CrtDumpMemoryLeaks();
AfxMessageBox("MFC 程序内存泄漏检测试验");
}
stonewater
2010-06-12
打赏
举报
回复
在任务管理器中就能看出来程序使用gdi句柄的多少,要是一直增加,结合你程序就能判断是否有泄漏了
Eleven
2010-06-11
打赏
举报
回复
Visual Leak Detector
HongHuer
2010-06-11
打赏
举报
回复
谢谢 linglongyouzhi,我去看看。
HongHuer
2010-06-11
打赏
举报
回复
抱歉,补充下。
我说的是 gdi资源 泄露。不是堆内存。
linglongyouzhi
2010-06-11
打赏
举报
回复
用boundschecker或升级版本
Visual C++ 内存
泄露
检测
工具
(VLD)
本文详细讲解了内存
泄露
的概念、分类及其危害,重点介绍了VLD(Visual Leak Detector)这款
工具
,包括其原理、下载安装、VisualStudio和Qt中的使用方法,以及注意事项。适合开发者理解和应用内存泄漏
检测
技术。
内存
泄露
检测
工具
[VLD, LeakDiag]
本文介绍如何使用VLD和LeakDiag
检测
并解决内存
泄露
问题,提供了内存
泄露
检测
工具
的使用方法及示例代码,同时
推荐
了IBM Rational PurifyPlus、BoundsChecker、Insure++和GlowCode等其他内存错误
检测
工具
。
VUE项目中内存
泄露
的
检测
方法
在Vue项目开发中,准确
检测
内存
泄露
很关键。本文介绍了几种
检测
方法,包括利用Chrome、Firefox浏览器开发者
工具
进行内存分析,借助Vue Devtools插件观察组件生命周期和数据变化,以及通过手动代码检查和日志记录来排查可能导致内存
泄露
的问题。
如何优化C#上位机程序的内存管理与防止
资源
泄露
本文深入探讨C#上位机程序中内存管理和
资源
泄露
问题,分析内存泄漏、
资源
泄漏及性能下降的影响,总结了托管与非托管
资源
、事件订阅、线程任务、接口使用及缓存滥用等常见原因,并提供优化方案,包括使用using语句、解除事件订阅、合理管理线程与任务、及时清理缓存及使用内存分析
工具
进行
检测
,帮助开发人员提升程序稳定性与性能。
如何
检测
资源
泄漏
本文介绍Windows平台上常见的
资源
泄露
类型,包括内存和对象句柄
泄露
,并提供了多种
检测
方法。文中
推荐
了VLD等
工具
用于内存
泄露
检测
,同时针对GDI、Kernel和User对象的句柄
泄露
也提出了相应的检查手段。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章