[发明专利]内存处理方法、装置、电子设备及存储介质在审
申请号: | 202111481083.7 | 申请日: | 2021-12-06 |
公开(公告)号: | CN114296733A | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 刘思 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/50 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 处理 方法 装置 电子设备 存储 介质 | ||
1.一种内存处理方法,其特征在于,包括:
响应于内存回收算法获取请求,确定当前内存回收算法为基于自动引用计数的回收算法或者基于追踪的回收算法中的一种回收算法;所述基于自动引用计数的回收算法与所述基于追踪的回收算法采用同一种程序设计语言设计,所述基于自动引用计数的回收算法通过引用计数实现对内存块的回收处理;所述基于追踪的回收算法通过确定每个内存块的占用状态实现对内存块的回收处理;
响应于内存回收算法切换请求,将所述当前内存回收算法切换为所述基于自动引用计数的回收算法或者所述基于追踪的回收算法中的另一种回收算法;
根据切换后的内存回收算法处理被占用的内存块。
2.根据权利要求1所述的内存处理方法,其特征在于,当所述切换后的内存回收算法为所述基于自动引用计数的回收算法时,所述基于自动引用计数的回收算法包括第一引用指示,所述第一引用指示用于指示目标内存块被引用的引用次数;所述根据切换后的内存回收算法处理被占用的内存块,包括:
在每新增一个对所述目标内存块的第一引用的情况下,对所述第一引用指示的引用次数加1;所述目标内存块为程序运行中建立的内存对象,用于存储所述程序的运算数据;
在每解除一个对所述目标内存块的所述第一引用的情况下,对所述第一引用指示的引用次数减1;
在所述第一引用指示的引用次数为0的情况下,释放被所述目标内存块占用的内存。
3.根据权利要求2所述的内存处理方法,其特征在于,所述基于自动引用计数的回收算法还包括第二引用指示,所述第二引用指示用于指示被引用的所述目标内存块的地址;所述根据切换后的内存回收算法处理被占用的内存块,包括:
在每新增一个对所述目标内存块的第二引用的情况下,对所述第二引用指示的引用次数加1;
在每解除一个对所述目标内存块的所述第二引用的情况下,对所述第二引用指示的引用次数减1;
在所述第二引用指示的引用次数为0的情况下,释放所述第二引用指示对应的地址内存块占用的内存;所述地址内存块用于存储所述第二引用指示指向的内存块地址。
4.根据权利要求3所述的内存处理方法,其特征在于,当所述切换后的内存回收算法为所述基于追踪的回收算法时,所述根据切换后的内存回收算法处理被占用的内存块,包括:
遍历所有被占用的所述内存块;
在第一目标内存块存活的情况下,对所述第一目标内存块进行标记;所述第一目标内存块为所有被占用的所述内存块内的任意内存块;
在所有被占用的所述内存块遍历结束后,释放未被标记的第二目标内存块所占用的内存;所述第二目标内存块为所有被占用的所述内存块内未被标记的内存块。
5.根据权利要求1所述的内存处理方法,其特征在于,当所述当前内存回收算法为所述基于追踪的回收算法,所述切换后的内存回收算法为所述基于自动引用计数的回收算法时,所述响应于内存回收算法切换请求,将所述当前内存回收算法切换为所述基于自动引用计数的回收算法或者所述基于追踪的回收算法中的另一种回收算法,包括:
在所有被占用的所述内存块之间不存在循环引用的情况下,将所述基于追踪的回收算法切换为所述基于自动引用计数的回收算法。
6.根据权利要求5所述的内存处理方法,其特征在于,还包括:
在所有被占用的所述内存块之间存在循环引用的情况下,确定告警消息;所述告警消息用于提示所述目标内存块存在内存泄漏的风险。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111481083.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种海管封头通过托管架的方法
- 下一篇:文本数据处理方法、设备和存储介质