发明名称 |
内存分配的方法及装置 |
摘要 |
本发明实施例提供内存分配的方法和装置。其中,方法包括:将空闲内存块串接到相应的空闲链表中,空闲链表的头指针维护在大小为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 广东省深圳市龙岗区坂田华为总部办公楼 |