SGI STL(七)——内存池总结

SGI STL 二级空间配置器的总结

防止小块内存频繁分配、释放、造成很多的碎片出来,内存没有更多的连续的大内存块,所以应用对于小块内存的操作,一般都会使用内存池来进行管理

对于每个字节数的chunk块分配,都是给出一部分进行使用,另一部分作为备用(开内存的时候*2),这个备用可给当前字节数使用,也可给其他字节数使用

对于备用内存池划分完chunk块后 ,若还有剩余的很小内存块,再次分配时,会把这些小的内存块再次分配出去,备用内存池能够得到完美利用

当指定字节数分配失败时,有一个异常处理的过程,8 ~ 128字节所有chunk进行查看,若哪个字节数的chunk块有空闲内存块,直接借一个出去。

若操作失败,则会调用oom_malloc

其中,若没设置回调则 throw bad_alloc退出程序;

如果用户有设置回调则会调用,然后再次试图malloc分配内存,循环直到分配内存成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值