发明名称 |
内存空洞检测和清除的方法和装置 |
摘要 |
本发明实施例公开了一种内存空洞检测和清除的方法和装置,涉及内存优化领域,减少了内存空洞的出现,提高了内存的利用率。所述方法包括:当进程每次从堆中申请内存成功时,内存空洞检测装置将所述申请成功的内存的首地址、大小和状态作为一条内存使用记录存入内存记录链表中;所述内存空洞检测装置启动内存空洞检测装置中的定时器;所述内存空洞检测装置将所述内存记录链表中与所述被释放的内存对应的内存使用记录中的状态修改为释放;当到达所述定时器规定的时间时,检测内存空洞;当所述内存空洞的大小大于等于规定阈值时,所述内存空洞检测装置清除内存空洞,重启定时器。本发明实施例主要应用在内存优化处理过程中。 |
申请公布号 |
CN102999427A |
申请公布日期 |
2013.03.27 |
申请号 |
CN201110278226.4 |
申请日期 |
2011.09.19 |
申请人 |
汉王科技股份有限公司 |
发明人 |
宋久元 |
分类号 |
G06F12/02(2006.01)I |
主分类号 |
G06F12/02(2006.01)I |
代理机构 |
北京中博世达专利商标代理有限公司 11274 |
代理人 |
申健 |
主权项 |
一种内存空洞检测和清除的方法,其特征在于,包括:当进程每次从堆中申请内存成功时,内存空洞检测装置将所述申请成功的内存的首地址、大小和状态作为一条内存使用记录存入内存记录链表中,所述状态为使用;当第一条内存使用记录存入内存记录链表中时,所述内存空洞检测装置启动内存空洞检测装置中的定时器;所述进程从堆中申请成功的内存被释放时,所述内存空洞检测装置将所述内存记录链表中与所述被释放的内存对应的内存使用记录中的状态修改为释放;当到达所述定时器规定的时间时,所述内存空洞检测装置从所述内存记录链表的链表首开始,分别查找出第一条状态为释放的内存使用记录中的首地址一,和在所述首地址一之后查找到的第一条状态为使用的内存使用记录中的首地址二,所述首地址一和首地址二之间的堆中内存区域为内存空洞,其中所述内存空洞的大小为所述首地址一和首地址二之间的堆中内存区域的所有内存大小的总和,所述链表首为存入所述内存记录链表中的第一条内存使用记录;当所述内存空洞的大小大于等于规定阈值时,所述内存空洞检测装置清除内存空洞,重启定时器。 |
地址 |
100193 北京市海淀区东北旺西路8号5号楼三层 |