[发明专利]一种内存泄露的定位方法及装置有效
申请号: | 201010150939.8 | 申请日: | 2010-04-13 |
公开(公告)号: | CN101819549A | 公开(公告)日: | 2010-09-01 |
发明(设计)人: | 刘伟 | 申请(专利权)人: | 东莞宇龙通信科技有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;潘中毅 |
地址: | 523500 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 泄露 定位 方法 装置 | ||
技术领域
本发明涉及软件检测领域,尤其涉及一种内存泄露的定位方法及装置。
背景技术
在计算机科学中,内存泄漏是指由于疏忽或错误造成程序未能释放已经不 再使用的内存的情况。内存泄漏会因为减少可用内存的数量从而降低计算机的 性能,在最糟糕的情况下,过多的可用内存被分配掉会导致全部或部分设备停 止正常工作,或者应用程序崩溃。
VLD(Visual Leak Detector,Visual检漏仪)是一款用于Visual C++的免费 内存泄露检测工具,VLD通过对程序本身的内存申请函数进行监测,并判断所 述内存申请函数对应的内存是否有释放,来检测是否存在内存泄露,并定位到 所在代码行。
但是,由于VLD是基于对内存申请函数的监测来实现内存检漏与定位,所 以当内存泄露是由于非代码引起的或者其他一些非常规情况引起的情况下, VLD并不能够很好的完成内存泄露的检测与定位。
发明内容
本发明所要解决的问题在于,提供一种内存泄露的检测方法及装置,根据 被测程序运行前后所消耗的内存值的记录、计算与判断,判定被测程序是否出 现内存泄露,并在出现内存泄露时,定位该被测程序。
为了解决上述问题,本发明实施例提供了一种内存泄露的定位方法,包括:
记录被测程序运行前的初始内存值,以及所述被测程序运行退出后的剩余 内存值;
根据所述初始内存值和所述剩余内存值,计算所述被测程序运行过程中所 消耗的消耗内存值;
根据所述消耗内存值,判定所述被测程序是否存在内存泄露,具体包括: 若所述消耗内存值不为零,则判定结果为是;否则,判定结果为否;
当判定结果为是时,定位所述被测程序;
其中,当判定结果为是时,即当所述消耗内存值不为零时,所述消耗内存 值即为所述被测程序运行后的内存未被释放的数值。
相应的,本发明实施例提供了一种内存泄露的定位装置,包括:
记录单元,用于记录被测程序运行前的初始内存值,以及所述被测程序运 行退出后的剩余内存值;
计算单元,用于根据所述记录单元记录的初始内存值和所述剩余内存值, 计算所述被测程序运行过程中所消耗的消耗内存值;
判定单元,用于根据所述计算单元计算得到的消耗内存值,判定所述被测 程序是否存在内存泄露,具体包括:若所述计算单元计算得到的消耗内存值不 为零,则判定所述被测程序存在内存泄露;否则,判定所述被测程序不存在内 存泄露,并且当判定结果为是时,即当所述消耗内存值不为零时,所述消耗内 存值即为所述被测程序运行后的内存未被释放的数值;
定位单元,用于当所述判定单元判定所述被测程序存在内存泄露时,定位 所述被测程序。
本发明通过对程序运行过程中的内存的变化情况,来判定所述程序是否存 在内存泄露,以在存在内存泄露时定位该程序,方便用户了解到存在内存泄露 的位置。本发明实施例是基于对内存变化情况的记录、计算以及判定来检测内 存泄露并定位,并非基于所述程序本身进行内存泄露的检测与定位,从而不仅 能够实现由程序代码本身引起的内存泄露的检测与定位,而且实现了当内存泄 露是由于非程序代码引起的或者其他一些非常规情况引起的情况下,仍然能够 很好的完成内存泄露的检测与定位。
附图说明
图1是本发明实施例的内存泄露的定位装置的结构组成示意图;
图2是本发明内存泄露的定位方法的第一实施例流程示意图;
图3是本发明内存泄露的定位方法的第二实施例流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的内存泄露的定位装置的结构组成示意图,如图1所 示,该装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东莞宇龙通信科技有限公司,未经东莞宇龙通信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010150939.8/2.html,转载请声明来源钻瓜专利网。