[发明专利]内存泄露的定位方法、装置、计算机设备及存储介质在审
申请号: | 201910199036.X | 申请日: | 2019-03-15 |
公开(公告)号: | CN110083525A | 公开(公告)日: | 2019-08-02 |
发明(设计)人: | 梁承飞 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/32 |
代理公司: | 深圳市立智方成知识产权代理事务所(普通合伙) 44468 | 代理人: | 王增鑫 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存泄露 内存 目标对象 内存信息 释放 记录 计算机设备 创建信息 存储介质 查询 获取目标 目标内存 可视化 创建 直观 占用 监控 | ||
本发明实施例公开了一种内存泄露的定位方法、装置、计算机设备及存储介质,包括下述步骤:获取被监控的对象的内存信息,其中,所述内存信息包括多个对象的内存的创建信息;判断所述多个对象的创建信息是否都具有对应的释放信息;当存在没有对应的释放信息的目标对象时,确定所述目标对象为内存泄露的对象。通过获取目标对象的内存信息,并在内存信息中判断是否存在与目标内存的创建记录对应的释放记录,当不存在时,即可确认该目标对象内存没有被释放掉,为内存泄露对象,该方法只需要记录内存的创建记录和释放记录即可查询,方法简单,通过对内存信息进行可视化设置还可以直观的查询内存的占用情况。
技术领域
本发明实施例涉及计算机领域,尤其是一种内存泄露的定位方法、装置、计算机设备及存储介质。
背景技术
在计算机科学中,内存泄露是指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。其并非是指物理上的消失,而是应用程序分配某段内存后,由于涉及错误,失去了对该段内存的控制,造成的内存的浪费情况。一般情况下,内存泄露只能由程序源代码的程序员才可以分析出来。
通常在检测内存泄露时会使用专门的工具,例如boundschecker、VisualleakDetector等工具进行专门的代码检测。但是,上述工具需要单独安装,当变成语言开发工具启动时候可以自动嵌入该变成软件的工具栏中。该方法的缺点是占用的资源多,且检测过程繁琐、复杂,并且不能直观的查看内存占用信息。
发明内容
本发明实施例提供一种内存泄露的定位方法、装置、计算机设备及存储介质。
为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种内存泄露的定位方法,包括下述步骤:
获取被监控的对象的内存信息,其中,所述内存信息包括多个对象的内存的创建信息;
判断所述多个对象的创建信息是否都具有对应的释放信息;
当存在没有对应的释放信息的目标对象时,确定所述目标对象为内存泄露的对象。
可选地,所述获取被监控的对象的内存信息之前,还包括:
对所述对象进行监控;
获取所述对象的内存创建指令;
根据所述内存创建指令在预设的内存信息列表中记录所述对象的创建信息。
可选地,所述内存信息为记录有多个对象的创建信息和释放信息的内存信息列表;所述判断所述多个对象的创建信息是否都具有对应的释放信息,包括:
从所述内存信息列表中提取对象的识别码;
根据所述识别码判断所述内存信息列表中是否存在与所述识别码具有映射关系的释放信息。
可选地,所述对象包括:第一对象和第二对象,其中,第二对象与第一对象嵌套;内存信息中第一对象和第二对象的创建信息呈树状排列;所述判断所述多个对象的创建信息是否都具有对应的释放信息,包括:
获取所述第一对象的信息;
根据所述第一对象的信息从所述内存信息中获取与所述第一对象嵌套的所有的第二对象的信息;
判断所述第二对象中是否存在没有释放信息的对象。
可选地,所述确定所述目标对象为内存泄露的对象,包括:
获取所述目标对象的识别码;
判断所述目标对象是否为单例对象;
当所述目标对象不是单例对象时,确定所述目标对象为内存泄露,的对象。
可选地,所述判断所述目标对象是否为单例对象,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910199036.X/2.html,转载请声明来源钻瓜专利网。