Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71227
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 14
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-27 11:09
文章分类

全部博文(21)

文章存档

2015年(1)

2013年(20)

我的朋友

分类: C/C++

2013-12-09 13:40:16

工作中需要一个内存池,所以记录一下思路,有时间实现其代码,若是可能开源之,

状态:设计草案
代码:未完成

内存池原理,

每次 new 和 malloc 向系统申请内存比较消耗时间,且一般这种需求下面内存消耗都是不确定的,那么申请次数
一般情况下面都是多次,一般情况下面内存大小又不一样


且 memset 和 free  delete 等操作同样消耗时间


从而影响程序的执行效率


所谓内存池原理,大概是这样,一次申请一块比较大的内存,缓存在几个结构体里面,然后需要使用的时候,切一块出来
用,用完,可以不需要,memset 和free delete

然后在最后销毁内存池的时候统一释放内存,且,内存可以重用,

既省略了中间分配的时间和释放内存的时间,
然而,会增加管理内存的时间,

其好处大概有

可能的执行效率提高,
内存的统一管理,可以减少内存泄漏的情况,
还有就是内存有可能是连续的,这样cpu读写的时候可以提高cpu的命中概率,可以减少cpu的执行指令次数,
容易实现内存对齐。
阅读(1532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~