【技术实现步骤摘要】
系统堆残留内存的监测方法及装置
本专利技术涉及内存数据监测
,尤其涉及一种系统堆残留内存的监测方法及装置。
技术介绍
目前,在标准C库中,提供了malloc/free函数分配释放堆(heap)。在Linux系统多线程应用场景中,malloc动态创建内存,但是当内存使用完毕后没有正确进行free释放malloc创建的内存时,会留下未释放的内存,即残留内存,随着时间推移未释放的内存也会不断累积,如此会致使Linux系统强制结束应用程序,导致系统重启问题。传统为采用人工解决该类问题,没有对内存残留进行监测,如此,导致后续对内存残留处理过程中,存在耗时长,成本偏高问题。
技术实现思路
为解决上述至少一技术问题,本专利技术的主要目的是提供一种系统堆残留内存的监测方法及装置。为实现上述目的,本专利技术采用的一个技术方案为:提供一种系统堆残留内存的监测方法,包括:在收到多线程释放内存请求时,获取至少一待释放内存信息;判断监测链表的节点中是否存在待释放内存信息,所述监测链表添加有多个具有内存
【技术保护点】
1.一种系统堆残留内存的监测方法,其特征在于,所述系统堆残留内存的监测方法包括:/n在收到多线程释放内存请求时,获取至少一待释放内存信息;/n判断监测链表的节点中是否存在待释放内存信息,所述监测链表添加有多个具有内存使用记录的节点;/n在监测链表存在待释放内存信息时,删除监测链表中对应内存使用记录的节点,得到监测链表的内存残留节点;/n输出内存残留节点的残留日志信息。/n
【技术特征摘要】
1.一种系统堆残留内存的监测方法,其特征在于,所述系统堆残留内存的监测方法包括:
在收到多线程释放内存请求时,获取至少一待释放内存信息;
判断监测链表的节点中是否存在待释放内存信息,所述监测链表添加有多个具有内存使用记录的节点;
在监测链表存在待释放内存信息时,删除监测链表中对应内存使用记录的节点,得到监测链表的内存残留节点;
输出内存残留节点的残留日志信息。
2.如权利要求1所述的系统堆残留内存的监测方法,其特征在于,所述判断监测链表的节点中是否存在待释放内存信息,具体包括:
在监测链表的节点中遍历查找待释放内存信息的内存地址;
判断监测链表的节点是否待释放内存信息的内存地址相等。
3.如权利要求1所述的系统堆残留内存的监测方法,其特征在于,所述在收到多线程释放内存请求时,获取至少一释放内存信息前,还包括:
根据获取的创建监测链表请求,创建监测链表;
在收到多线程创建内存请求时,记录新创建节点的内存使用记录,所述内存使用记录包括内存地址、内存大小、源码文件名及行号信息;
将内存使用记录添加至监测链表尾部。
4.如权利要求3所述的系统堆残留内存的监测方法,其特征在于,所述输出内存残留节点的残留日志信息,具体包括:
在获取到输出残留日志请求时,遍历监测链表中的残留内存节点;
输出残留内存节点的内存使用记录。
5.如权利要求4所述的系统堆残留内存的监测方法,其特征在于,所述输出残留内存节点的内存使用记录后,还包括:...
【专利技术属性】
技术研发人员:晏冬,
申请(专利权)人:深圳英飞拓科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。