gdi对象一直增加_Deleaker专题:记一次GDI对象泄漏经历

问题

无意间打开任务管理器查看程序GDI对象计数,发现程序每次最小化然后最大化后,GDI对象增1,说明GDI资源存在泄漏。

GDI资源泄漏就像牙疼一样,平时没什么感觉,最后发作的时候,可是要人命的。随着程序长时间运行,GDI资源慢慢泄漏,主要特征为任务管理器中的GDI对象计数不断增加,最后系统不堪重负,程序运行缓慢,直至最后崩溃。

开始诊断

1) 使用GDI资源泄漏工具GDIndicator,打开目标程序,列表中会显示程序使用的各项GDI资源计数。

9b331f9d305e7d4fb7c2797a513cc60e.png

2) 随着程序运行,刷新列表,可以观察到目标程序的GDI资源计数是否一直增加。

3) 观察到Brush对象递增,说明画刷对象存在泄漏。

GDIndicator工具仅给出初级的诊断,很难找到具体泄漏的代码点。下面Deleaker登场。

需要说明的是,Deleaker是收费工具,可以提供14天的免费试用。

载入目标程序并启动调试,运行程序一段时间后,退出程序,Deleaker会给出完整泄漏报告。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值