[发明专利]内存泄露的检测方法及装置、电子设备在审
申请号: | 201710661246.7 | 申请日: | 2017-08-04 |
公开(公告)号: | CN107423220A | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 田友强;徐磊;赵伟;赵社涛;张明 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司11438 | 代理人: | 邢雪红,乔彬 |
地址: | 266555 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄露 检测 方法 装置 电子设备 | ||
技术领域
本发明涉及计算机网络通信技术领域,特别涉及一种内存泄露的检测方法及装置、电子设备、计算机可读存储介质。
背景技术
目前,计算机系统以及一些网络设备的内存不管容量有多大,均是有限的,因此有效的应用这些内存是一个十分重要的问题。为了有效应用这些内存,首先需要解决系统可能出现的内存泄露问题。内存泄漏并非指内存在物理上的消失,而是应用程序(即申请和使用内存的实体)在分配到某段内存后,由于程序设计上的错误,如未设计释放或者是主观认为不必处理等原因,失去了对该段内存的控制,因而造成了内存的浪费。内存的泄露将导致可用内存量不断降低,导致系统最终无法运行,系统崩溃。
现有技术为了实现内存泄露的检测,主要采用以下几种方式:
(1)针对某个模块,将连续两次获取到的内存使用数据进行比较,如果每次得到的比较结果都是后一次比前一次使用内存的总数多,则认为可能存在内存泄露现象。这种方式无法确定内存泄露的具体位置,并且对于正常增加内存使用的情况,也会认为是出现内存泄露,所以内存泄露检测结果不准确。
(2)记录每条分配路径上分配内存的时间,然后根据每条路径分配的、并且存活的同类内存的年龄对路径进行排序,排序越高的分配路径,即内存存活时间最长的分配路径认为存在内存泄露。这种方式操作过程比较繁琐和复杂,需要对所有分配路径已分配内存进行遍历,效率低,且对整个智能设备的性能和稳定性构成很大影响。
(3)在内存申请后将内存的相关信息记录到内存或者文件中,将内存的相关信息上报给用户,可以定期或者不定期进行人工检查,以便确认是否有内存遗漏并且查找内存泄露的位置。这种方式需要人工辅助分析,对人的能力要求较高,且效率低。
综上,现有的内存泄露检测方式,效率低、精度差、难以确定内存泄露的具体位置。
发明内容
为了解决现有内存泄露检测方式效率低、精度差、难以确定内存泄露的具体位置的缺陷,本发明提供了一种内存泄露的检测方法。
本发明提供了一种内存泄露的检测方法,包括:
根据接收到的内存申请请求,调用内存分配函数来创建内存管理模块,所述内存管理模块用于记录所述内存申请请求中所申请内存的大小;
根据所述内存分配函数的文件标识,在预置的内存分配函数队列中查找所述内存分配函数对应的队列项;所述队列项存储所述内存分配函数对应的文件标识、已分配内存大小和最大已分配内存大小;
根据所述内存管理模块记录所申请内存的大小,更新所述内存分配函数对应的已分配内存大小;
若所述已分配内存大小超过最大已分配内存大小,则提示所述内存分配函数分配的内存区域存在内存泄露。
另一方面,本发明还提供一种内存泄露的检测装置,所述装置包括:
函数调用模块,用于根据接收到的内存申请请求,调用内存分配函数来创建内存管理模块,所述内存管理模块用于记录所述内存申请请求中所申请内存的大小;
函数查找模块,用于根据所述内存分配函数的文件标识,在预置的内存分配函数队列中查找所述内存分配函数对应的队列项;所述队列项存储有所述内存分配函数对应的文件标识、已分配内存大小和最大已分配内存大小;
信息更新模块,用于根据所述内存管理模块记录所申请内存的大小,更新所述内存分配函数对应的已分配内存大小;
泄露提示模块,用于若所述已分配内存大小超过最大已分配内存大小,则提示所述内存分配函数分配的内存区域存在内存泄露。
再一方面,本发明还提供一种电子设备,该电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述一种内存泄露的检测方法。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成上述任意一种所述的内存泄露的检测方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
通过判断某内存分配函数的已分配内存大小是否超出最大已分配内存大小,以此确定该内存分配函数分配的内存区域是否存在内存泄露,这种方式检测效率高,检测结果准确,可以快速确定内存泄露的位置,无需人工辅助,也无需遍历所有分配路径的已分配内存,减小了对智能设备的资源消耗和性能影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710661246.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种压合装置
- 下一篇:一种加工易拉罐盖板的压力机