发明名称 基于内存扫描的嵌入式软件动态内存回收方法
摘要 本发明涉及内存管理技术领域,尤其涉及一种基于内存扫描的嵌入式软件动态内存回收方法。包括步骤:(1)确定软件程序能访问到的内存区域;(2)接管程序/系统动态内存的分配和释放过程;(3)满足触发扫描的条件时,扫描可访问的内存区域,并将可访问内存块加入可访问内存块集合;(4)释放所有不在可访问内存块集合中的动态内存块;(5)继续执行步骤(3)、(4),直到收到退出指令后停止。本发明使用内存扫描方法无需改变原有的程序实现机制,因此不会带来性能的损失。同时,无需增加额外开发工作量,还可以和所有第三方库兼容。
申请公布号 CN104536773A 申请公布日期 2015.04.22
申请号 CN201510054542.1 申请日期 2015.02.03
申请人 积成电子股份有限公司 发明人 刘国华;周文俊;孙发恩;贺强;朱晓磊;宋先慧;谈凤真;袁文广
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 济南舜源专利事务所有限公司 37205 代理人 苗峻;刘玉玲
主权项 基于内存扫描的嵌入式软件动态内存回收方法,其特征在于包括以下步骤:确定软件程序能访问到的内存区域;接管程序/系统动态内存的分配和释放过程,分配动态内存时,将分配到的动态内存块加入动态内存块集合中;释放内存时,将其从动态内存块集合中移除;满足触发扫描条件时,开始扫描可访问的内存区域,寻找内存地址范围在动态内存块集合的内存块范围中但未标记为可访问的内存块,将其标记为可访问并加入可访问内存块集合;再循环扫描可访问内存块集合中的内存块对应区域,寻找并继续向可访问内存块集合中增加符合上述条件的内存块,直至可访问内存块集合中的内存块全被扫描过;将动态内存块集合与可访问内存块集合比较,释放所有不在可访问内存块集合中的动态内存块;继续执行步骤(3)、(4),直到收到退出指令后停止。
地址 250100 山东省济南市高新开发区科航路1677号