Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50939
  • 博文数量: 5
  • 博客积分: 313
  • 博客等级: 入伍新兵
  • 技术积分: 85
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-14 14:36
文章分类

全部博文(5)

文章存档

2012年(3)

2011年(2)

分类: C/C++

2012-05-15 23:06:19

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

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

内存池原理,

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


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


从而影响程序的执行效率


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

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

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

其好处大概有

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

上一篇:【非技術】FreeBSD 9.0 安装入门教程V0.2

下一篇:没有了

给主人留下些什么吧!~~