- 4
- 0
- 约2.29千字
- 约 10页
- 2016-11-25 发布于重庆
- 举报
内存池分析(部分)
内存池实现方案一
方案的整体架构,如下:
图1.内存池架构图
结构中主要包含block、list 和pool这三个结构体,block结构包含指向实际内存空间的指针,前向和后向指针让block能够组成双向链表;list结构中free指针指向空闲 内存块组成的链表,used指针指向程序使用中的内存块组成的链表,size值为内存块的大小,list之间组成单向链表;pool结构记录list链表的头和尾。
内存跟踪策略
该方案中,在进行内存分配时,将多申请12个字节,即实际申请的内存大小为所需内存大小+12。在多申请的12个字节中,分别存放对应的list指针(4字节)、used指针(4字节)和校验码(4字节)。通过这样设定,我们很容易得到该块内存所在的list和block,校验码起到粗略检查是否出错的作用。该结构图示如下:
图2.内存块申请示意图
图中箭头指示的位置为内存块真正开始的位置。
内存申请和释放策略
申请:根据所申请内存的大小,遍历list链表,查看是否存在相匹配的size;
存在匹配size:查看free时候为NULL
free为NULL:使用malloc/new申请内存,并将其置于used所指链表的尾部
free不为NULL:将free所指链表的头结点移除,放置于used所指链表的尾部
不存在匹配size:新建list,使用malloc/
您可能关注的文档
最近下载
- 化学化工物性数据手册.pdf VIP
- 金属非金属矿山安全标准化管理制度-xx矿业资料.doc VIP
- 康明斯PT泵燃油系统.ppt VIP
- 默纳克荣耀柜大功率别墅梯配一体化轿顶检修盒(MCTC-CTW-B3&A9适用)电气原理图(含手拉门)_中文版.pdf VIP
- 2026【期中】家长会:致敬每位不容易的家长 课件(共37张PPT).pptx VIP
- 基于stm32肺活量测量装置设计.docx
- 2026年职业技能中医康复理疗师-理论知识参考题库含答案解析(5卷题有答案).docx VIP
- 要想知道自己姓氏来源去看:四川渠县百家姓姓氏探源.pdf VIP
- 小儿肾积水诊疗指南(2025年版).docx VIP
- 基于低碳理念的城市滨水公园景观设计——以宁德时代工业文化园设计为例.pdf
原创力文档

文档评论(0)