[发明专利]内存空洞检测和清除的方法和装置有效
申请号: | 201110278226.4 | 申请日: | 2011-09-19 |
公开(公告)号: | CN102999427A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 宋久元 | 申请(专利权)人: | 汉王科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 空洞 检测 清除 方法 装置 | ||
1.一种内存空洞检测和清除的方法,其特征在于,包括:
当进程每次从堆中申请内存成功时,内存空洞检测装置将所述申请成功的内存的首地址、大小和状态作为一条内存使用记录存入内存记录链表中,所述状态为使用;
当第一条内存使用记录存入内存记录链表中时,所述内存空洞检测装置启动内存空洞检测装置中的定时器;
所述进程从堆中申请成功的内存被释放时,所述内存空洞检测装置将所述内存记录链表中与所述被释放的内存对应的内存使用记录中的状态修改为释放;
当到达所述定时器规定的时间时,所述内存空洞检测装置从所述内存记录链表的链表首开始,分别查找出第一条状态为释放的内存使用记录中的首地址一,和在所述首地址一之后查找到的第一条状态为使用的内存使用记录中的首地址二,所述首地址一和首地址二之间的堆中内存区域为内存空洞,其中所述内存空洞的大小为所述首地址一和首地址二之间的堆中内存区域的所有内存大小的总和,所述链表首为存入所述内存记录链表中的第一条内存使用记录;
当所述内存空洞的大小大于等于规定阈值时,所述内存空洞检测装置清除内存空洞,重启定时器。
2.根据权利要求1所述的一种内存空洞检测和清除的方法,其特征在于,所述进程从堆中申请成功的内存被释放时,所述内存空洞检测装置将所述内存记录链表中与所述被释放的内存对应的内存使用记录中的状态修改为释放之后,还包括:
所述内存空洞检测装置从所述内存记录链表中的链表尾开始查找,直到查找出第一条状态为使用的内存使用记录,并将所述第一条状态为使用的内存使用记录之前的所有内存使用记录中记录的内存大小进行累加;
当累加和大于等于规定阈值时,将所述内存记录链表中所述第一条状态为使用的内存使用记录之前的所有内存使用记录删除;
当累加和小于规定阈值时,对所述内存记录链表不做任何修改。
3.根据权利要求1所述的一种内存空洞检测和清除的方法,其特征在于,所述进程从堆中申请成功的内存被释放时,所述内存空洞检测装置将所述内存记录链表中与所述被释放的内存对应的内存使用记录中的状态修改为释放之后,还包括:
所述内存空洞检测装置从所述内存记录链表中的链表尾开始查找,没有查找出状态为使用的内存使用记录,将所述内存记录链表中所有内存使用记录中记录的内存大小进行累加;
当累加和大于等于规定阈值时,删除所述内存记录链表中的所有内存使用记录;
当累加和小于规定阈值时,对所述内存记录链表不做任何修改。
4.根据权利要求1所述的一种内存空洞检测和清除的方法,其特征在于,还包括:
当到达所述定时器规定的时间时,所述内存空洞检测装置从所述内存记录链表的链表首开始,没有查找出状态为释放的内存使用记录,重启定时器,并退出,等待到达下一个所述定时器规定的时间;
当到达所述定时器规定的时间时,所述内存空洞检测装置从所述内存记录链表的链表首开始,查找出第一条状态为释放的内存使用记录之后没有查找出状态为使用的内存使用记录,重启定时器,并退出,等待到达下一个所述定时器规定的时间;
当到达所述定时器规定的时间时,所述内存空洞检测装置从所述内存记录链表的链表首开始,分别查找出第一条状态为释放的内存使用记录中的首地址三,和在所述首地址三之后查找到的第一条状态为使用的内存使用记录中的首地址四,所述首地址三或首地址四大于堆顶指针时,调整堆顶指针的值为所述内存记录链表的链表尾的内存使用记录的首地址,重启定时器,并退出,等待到达下一个所述定时器规定的时间。
5.根据权利要求1所述的一种内存空洞检测和清除的方法,其特征在于,还包括:
当所述内存空洞的大小小于规定阈值时,重启定时器,并退出,等待到达下一个所述定时器规定的时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉王科技股份有限公司,未经汉王科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110278226.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:实心胎轮辋
- 下一篇:一种具有凸状轮辐的钢圈