[发明专利]一种基于PoolMon的内存泄露检测和定位的方法及装置在审
申请号: | 201510264114.1 | 申请日: | 2015-05-22 |
公开(公告)号: | CN104965779A | 公开(公告)日: | 2015-10-07 |
发明(设计)人: | 王杰 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 poolmon 内存 泄露 检测 定位 方法 装置 | ||
技术领域
本发明涉及软件测试领域,特别涉及一种基于PoolMon的内存泄露检测和定位的方法及装置。
背景技术
内存泄露是由于疏忽或错误造成程序未能释放已经不再使用的内存,随后这部分内存不能进行重新分配,随着时间的推移,不断为程序分配新的内存,由于系统可用内存不断减少,系统将出现卡顿的现象,最终由于系统内存池耗尽,系统中止运行,对于用户来说,系统中止运行是不可接受,可能带来巨大的损失,所以程序在交付用户使用之前,需要检测其是否存在内存泄露的情况,如果存在则需要确定具体是哪部分导致内存泄露,并进行修复。
目前,对于程序内存泄露的检测,主要是通过程序运行过程中消耗的内存值,确定程序是否存在内存泄露的情况,如果存在,则对整个程序进行检查修改。
针对目前这种内存泄露检测的方法,由于各种原因会导致程序消耗内存发生变化,单纯通过程序消耗的内存来判断出现内存泄露具有很大的误差,而且,发现存在内存泄露的情况后,对整个程序进行修改,需要很长的时间寻找导致内存泄露原因,程序开发人员工作效率低。
发明内容
本发明提供一种基于PoolMon的内存泄露检测和定位的方法及装置,能够提高检测和定位内存泄露的效率。
本发明实施例提供了一种基于PoolMon的内存泄露检测和定位的方法,包括:
将待检测程序运行在系统上,对该程序的各个操作进行反复循环执行,直至达到第一预设时间停止待检测程序的运行;
检测所述各个操作反复循环执行过程中及执行前和执行完毕后系统内存的占用情况;
根据所述系统内存占用情况,判断所述待检测程序是否发生内存泄露;
根据判断结果,如果发生内存泄露,将所述待检测程序运行在至少一个系统上,每个系统上反复循环执行所述待检测程序的其中一个操作,直至达到第二预设时间停止待检测程序的运行,其中,所述系统数量与所述待检测程序的操作数量相同,且每个所述系统上执行的操作互不相同;
在对应的系统上执行各操作过程中,通过所述PoolMon采集每个操作对应的各个内存标签的访问记录数据,并形成采集文件;
分析所述采集文件,确定导致内存泄露的内存标签。
优选地,所述在对应的系统上执行各操作过程中,通过所述PoolMon采集每个操作对应的各个内存标签的访问记录数据包括:从开始执行所述各操作起,在每个系统上,每经过一个间隔时间,通过所述PoolMon采集一次各个内存标签的访问记录数据,直至达到所述第二预设时间。
优选地,所述间隔时间小于所述第二预设时间。
优选地,所述根据所述系统内存占用情况,判断所述待检测程序是否发生内存泄露包括:如果所述各个操作反复循环执行过程中系统内存占用不断增加,且所述待检测程序停止运行后系统内存占用与初始系统内存占用之差大于第一预定值,则判断为所述待检测程序发生内存泄露,否则判断为不发生内存泄露。
优选地,所述分析所述采集文件,确定导致内存泄露的内存标签包括:根据所述采集文件中记录的数据,如果所述内存标签的内存占用不断增加,且停止执行对应操作后所述内存标签的内存占用与初始内存标签的内存占用之差大于第二预定值,则确定该内存标签导致内存泄露。
本发明实施例还提供了一种基于PoolMon的内存泄露检测和定位的装置,包括:
第一执行单元,用于将待检测程序运行在系统上,对该程序的各个操作进行反复循环执行,直至达到第一预设时间停止待检测程序的运行;
检测单元,用于检测所述第一执行单元对各个操作反复循环执行过程中及执行前和执行完毕后系统内存的占用情况;
判断单元,用于根据所述检测单元检测出的系统内存占用情况,判断所述待检测程序是否发生内存泄露;
第二执行单元,用于根据所述判断单元做出的判断结果,如果发生内存泄露,将所述待检测程序运行在至少一个系统上,每个系统上反复循环执行所述待检测程序的其中一个操作,直至达到第二预设时间停止待检测程序的运行,其中,所述系统数量与所述待检测程序的操作数量相同,且每个所述系统上执行的操作互不相同;
采集单元,用于所述第二执行单元在对应的系统上执行各操作过程中,通过所述PoolMon采集每个操作对应的各个内存标签的访问记录数据,并形成采集文件;
分析单元,用于分析所述采集单元形成的采集文件,确定导致内存泄露的内存标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510264114.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高端容错计算机目录体系结构实现方法
- 下一篇:电子设备及信息处理方法