- 0
- 0
- 约6.29千字
- 约 10页
- 2017-08-12 发布于河南
- 举报
1.为什么需要内存池
??? 为什么需要内存池?
a. 在大量的小块内存的申请和释放的时候,能更快地进行内存分配(对比malloc和free)
b.减少内存碎片,防止内存泄露。
2.内存池的原理
??? 内存池的原理非常简单,用申请一块较大的内存来代替N多的小内存块,当有需要malloc一块比较小的内存是,直接拿这块大的内存中的地址来用即可。
??? 当然,这样处理的缺点也是很明显的,申请一块大的内存必然会导致内存空间的浪费,但是比起频繁地malloc和free,这样做的代价是非常小的,这是典型的以空间换时间。
??? 一个典型的内存池如下图所示:
图一:一个典型的内存池
?
??? 首先定义这样一个结构体:
?typedef struct MemoryBlock
{
char *Data ; //数据
std::size_t DataSize ; //总的大小
std::size_t UsedSize ; //已经用了的大小
MemoryBlock*Next ;
} MemoryBlock;
??? 一个内存池就是这样一连串的内存块组成。当需要用到内存的时候,调用此内存池定义好的接口GetMemory(),而需要删除的时候FreeMemory()。
??? 而GetMemory和FreeMemory干了什么呢?GetMemory只是简单返回内存池中可用空间
您可能关注的文档
最近下载
- 《极限驾驶:赛车的艺术与科学》读书记录.pdf VIP
- 2025年全国各省市中考英语真题汇编专题18短文填空含答案.docx VIP
- 2026年安徽省烟草专卖局招聘(100人)笔试备考试题及答案解析.docx VIP
- 2026年安徽省烟草专卖局(公司)招聘100名笔试模拟试题及答案解析.docx VIP
- 2026年安徽省烟草专卖局(公司)招聘100人笔试模拟试题及答案解析.docx VIP
- 轿车液压制动系统设计及仿真分析.doc
- 2025年安徽省烟草专卖局(公司)招聘112人笔试参考试题附答案解析.docx VIP
- 2025年安徽省马鞍山市烟草系统人员招聘笔试试题及答案解析.docx VIP
- 初中七年级(初一)数学下册专题练习版.docx VIP
- 新能源汽车制动系统仿真分析.doc VIP
原创力文档

文档评论(0)