内存池详解


最近一直在搞内存池,这一块之前一直没有注意过,最近看书看到这一块,发现挺重要的,琢磨了挺长时间,也在github上找了很多代码,感觉都不太好,最后是看《深入实践C++模板编程》书中的实现,感觉还不错,就自己敲了一下并分析理解了原理,感觉受益匪浅。

源码

简介

什么是内存池?为什么要使用内存池?

简单的来说就是,如果我们要给很多元素分配内存,如果我们一个个用malloc分配,因为malloc本身调用非常慢,所以数据量大时耗费在malloc上的时间将会很多。内存池就是先分配一块比较大的内存,再对这块已经分配的内存进行管理,对元素进行分配,这样可以节约比较多的时间。

内存池和allocator的关系

allocator是分配器,STL中大量使用它,比如vector等,我们平时使用的vector<int>实际上是隐含了分配器,实际真正的调用应该是vector<int, std::allocator<int>>,也就是说真正的内存管理是通过allocator来进行的。实际上std::allocator的实现就是通过内存池,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值