【C++内存管理】G2.9 std::alloc 运行模式

本文详细介绍了GNU C++标准分配器std::alloc的内存管理运行模式,包括数据结构的设计,如何处理内存碎片,以及在内存耗尽时的策略。文章通过实例分析了内存块的申请、内存碎片的处理过程,展示了std::alloc如何有效地管理内存,以减少内存浪费。

上一篇里面说到,vs 的标准分配器 std::allocator 并没有做内存管理。gnu的历史版本 2.9 中的标准分配器 std::allocator 也没有做内存管理,但是它提供的 extended allocator 中,std::alloc 就是一个做了内存管理的版本。在 gnu 新版本中,__gnu_cxx::__pool_alloc<_Ty> 就是 G2.9 的 std::alloc 的化身。


下面先分析以下 std::alloc 的运行模式,再下一篇分析具体代码。
不过先需要前三篇的基础:

内存管理实例一
内存管理实例二
内存管理实例三


数据结构

G2.9 std::alloc

  • 一个指针数组 free_list[16],分别负责16条不同大小的 block,以 8 bytes 为间隔。比如 #0 负责 8 bytes 的 block,#3 负责 32 bytes 的 block。当客户端需要 size
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值