工作中需要一个内存池,所以记录一下思路,有时间实现其代码,若是可能开源之,
状态:设计草案
代码:未完成
内存池原理,
每次 new 和 malloc 向系统申请内存比较消耗时间,且一般这种需求下面内存消耗都是不确定的,那么申请次数
一般情况下面都是多次,一般情况下面内存大小又不一样
且 memset 和 free delete 等操作同样消耗时间
从而影响程序的执行效率
所谓内存池原理,大概是这样,一次申请一块比较大的内存,缓存在几个结构体里面,然后需要使用的时候,切一块出来
用,用完,可以不需要,memset 和free delete
然后在最后销毁内存池的时候统一释放内存,且,内存可以重用,
既省略了中间分配的时间和释放内存的时间,
然而,会增加管理内存的时间,
其好处大概有
可能的执行效率提高,
内存的统一管理,可以减少内存泄漏的情况,
还有就是内存有可能是连续的,这样cpu读写的时候可以提高cpu的命中概率,可以减少cpu的执行指令次数,
容易实现内存对齐。
阅读(2912) | 评论(0) | 转发(1) |