发明名称 |
一种内存块合并方法与系统 |
摘要 |
本发明公开了一种内存块合并方法与系统,扫描所有小于一定大小的内存块,并视为内存碎片,从首地址开始,找到一个内存碎片后就返回其地址。将返回的内存碎片地址作为起点,向后查看预设数量个块是否都是空闲块,如果是则合并为一块,如果不是,则查找预设数量一半的块是否都是空闲块,如果是,则合并。以此类推,保证得到尽可能大的内存块以减小内存碎片的数量,最后全局并合并相邻且大小相同的内存块,可以尽可能地合并内存碎片,得到尽可能大的可用空闲块,提高了碎片合并效率。 |
申请公布号 |
CN105404590A |
申请公布日期 |
2016.03.16 |
申请号 |
CN201510762616.7 |
申请日期 |
2015.11.10 |
申请人 |
浪潮(北京)电子信息产业有限公司 |
发明人 |
武毅 |
分类号 |
G06F12/02(2006.01)I |
主分类号 |
G06F12/02(2006.01)I |
代理机构 |
北京集佳知识产权代理有限公司 11227 |
代理人 |
罗满 |
主权项 |
一种内存块合并方法,其特征在于,包括:步骤A:扫描内存大小小于预设内存阈值的内存块,将内存小于或等于预设碎片内存阈值的内存块确定为内存碎片;步骤B:获取所述内存碎片的地址;步骤C:以所述内存碎片的地址为起点,判断连续地址上的空闲块的内存之和是否可达到预设的合并内存阈值,如果是,则将内存之和达到预设的合并内存阈值的空闲块合并,得到大内存块,进入步骤E,否则进入步骤D;步骤D:将当前合并内存阈值一半的内存值,视为新的合并内存阈值,判断当前合并内存阈值是否大于所述内存碎片的内存值,如果否,则进入步骤E,如果是,则判断连续地址上的空闲块的内存之和是否可达到当前合并内存阈值,如果是,则将内存之和达到当前合并内存阈值的空闲块合并,得到大内存块,进入步骤E,否则返回步骤D;步骤E:将全局中内存大小且相邻的内存块进行合并。 |
地址 |
100085 北京市海淀区上地信息路2号2-1号C栋1层 |