[发明专利]一种内存防碎片方法、系统及储存介质有效
申请号: | 202010107315.1 | 申请日: | 2020-02-21 |
公开(公告)号: | CN111338981B | 公开(公告)日: | 2022-11-08 |
发明(设计)人: | 谭冰;孟庆晓;吴闽华 | 申请(专利权)人: | 深圳震有科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 温宏梅;王永文 |
地址: | 518057 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 碎片 方法 系统 储存 介质 | ||
本发明公开一种内存防碎片方法、系统及存储介质,方法包括当接收到申请空闲内存块请求指令时,检测终端是否有空闲内存块;当存在至少一个空闲内存块时,确定待用空闲内存块及其内存长度;当所述待用空闲内存块的内存长度大于所述申请长度,确定所述待用空闲内存块是否被分割;若待用空闲内存块的内存长度与所述申请长度的差值大于最小内存块阈值,将待用空闲内存块分割成两块并使用。本发明旨在根据最小内存块阈值确定待分配的空闲内存块是否分割,从而保证每一个空闲内存块均有效使用,提高利用率,同时根据应用场景从低地址或从高地址分配空闲内存块,减少大小空闲内存块夹杂在一起的概率,减少分块操作的执行,提高分配的效率。
技术领域
本发明涉及计算机技术领域,具体涉及一种内存防碎片方法、系统及存储介质。
背景技术
现有的堆内存技术是根据实际需要的长度来分配内存块,并且是固定从低地址或高地址依次分配内存块。当待分配的内存块大于实际需要的长度时进行分片,这样,容易导致分片后的内存块内存过小而无法分配或分配失败,使得内存利用率低,还导致内存空间浪费。
因此,现有技术还有待发展和改进。
发明内容
基于此,有必要针对现有技术中内存块利用率低且浪费空间的技术问题,提供一种内存防碎片方法、系统及存储介质,旨在根据最小内存块阈值确定待分配的空闲内存块是否分割,从而保证每一个空闲内存块均有效使用,提高利用率,同时根据应用场景从低地址或从高地址分配空闲内存块,减少大小空闲内存块夹杂在一起的概率,减少分块操作的执行,提高分配的效率。
为了达到上述目的,本发明采取了以下技术方案:
一种内存防碎片方法,所述内存防碎片方法包括以下步骤:
当接收到申请空闲内存块请求指令时,检测终端是否有空闲内存块;
当检测到所述终端有至少一个空闲内存块时,根据所获取的申请长度确定待用空闲内存块以及待用空闲内存块的内存长度;
当所述待用空闲内存块的内存长度大于所述申请长度,比较所述待用空闲内存块的内存长度与所述申请长度的差值与预设的最小内存块阈值大小以确定所述待用空闲内存块是否被分割;
若所述待用空闲内存块的内存长度与所述申请长度的差值大于预设的最小内存块阈值,则将所述待用空闲内存块分割成两块并使用。
所述的内存防碎片方法,其中,还包括:
若所述待用空闲内存块的内存长度与所述申请长度的差值小于预设的最小内存块阈值,则所述待用空闲内存块不分割并使用所述待用空闲内存块。
所述的内存防碎片方法,其中,所述若所述待用空闲内存块的内存长度与所述申请长度的差值大于预设的最小内存块阈值,则将所述待用空闲内存块分割成两块并使用具体包括:
若所述待用空闲内存块的内存长度与所述申请长度的差值大于预设的最小内存块阈值,则将所述待用空闲内存块分割成第一空闲内存块和第二空闲内存块;其中,所述第二空闲内存块的内存长度=分割前所述待用空闲内存块的内存长度-申请长度;
使用所述第一空闲内存块并更新所述第一空闲内存块的状态为busy状态。
所述的内存防碎片方法,其中,所述若所述待用空闲内存块的内存长度与所述申请长度的差值大于预设的最小内存块阈值,则将所述待用空闲内存块分割成两块并使用之后包括:
实时检测是否接收到释放当前正使用的空闲内存块请求指令;
当检测到接收到释放当前正使用的空闲内存块请求指令时,释放所述第一空闲内存块并更新所述第一空闲内存块的状态为空状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳震有科技股份有限公司,未经深圳震有科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010107315.1/2.html,转载请声明来源钻瓜专利网。