发明名称 内存分配的方法及装置
摘要 本发明实施例提供内存分配的方法和装置。其中,方法包括:将空闲内存块串接到相应的空闲链表中,空闲链表的头指针维护在大小为N的空闲链表头数组中,空闲链表头数组中头指针指向的相应的空闲链表的索引为n,索引为n的空闲链表用于串接大小为X的空闲内存块;当申请的内存的大小为Y时,从索引为m+1的空闲链表开始、在索引为m+1的空闲链表与索引为n的空闲链表之间确定第一个非空的空闲链表;提取第一个非空的空闲链表中的第一个空闲内存块,按照申请的内存的大小分配第一空闲内存块。本发明能够在具有高性能的同时,兼具碎片少、可申请任意内存大小的特点。
申请公布号 CN102866954A 申请公布日期 2013.01.09
申请号 CN201210316944.0 申请日期 2012.08.31
申请人 华为技术有限公司 发明人 雷镇
分类号 G06F12/06(2006.01)I 主分类号 G06F12/06(2006.01)I
代理机构 北京龙双利达知识产权代理有限公司 11329 代理人 王君;肖鹂
主权项 一种内存分配的方法,其特征在于,包括:将空闲内存块串接到相应的空闲链表中,所述空闲链表的头指针维护在大小为N的空闲链表头数组中,所述空闲链表头数组中头指针指向的相应的空闲链表的索引为n,其中所述N为正整数,所述n为0至N‑1的整数,索引为N的空闲链表用于串接大小为X的空闲内存块,其中X大于或等于2n且小于或等于2n+1‑1;当申请的内存的大小为Y时,从索引为m+1的空闲链表开始、在索引为m+1的空闲链表与索引为n的空闲链表之间确定第一个非空的空闲链表,其中所述m小于或等于N‑1,Y大于或等于2m且小于或等于2m+1‑1;提取所述第一个非空的空闲链表中的第一个空闲内存块,按照所述申请的内存的大小分配所述第一个空闲内存块。
地址 518129 广东省深圳市龙岗区坂田华为总部办公楼