C++侯捷视频笔记之内存管理primitives(三)内存分配器演变

一、per-class allocator,版本1st

为减少malloc次数并减少cookie占用的内存,可先分配一个内存池,再从内存池不断获取内存
在这里插入图片描述
使用全局operator new分配内存时需要分配8 bytes用来存储上下两个cookie,所以未使用上述自定义的内存分配器会占用更多内存
在这里插入图片描述

二、per-class allocator,版本2nd

相比第一个版本使用了共用体,减少了指针内存的占用
在这里插入图片描述
在这里插入图片描述

三、static allocator 版本3rd

如果每个类中都要重载operator new/operator delete太麻烦,所以设计一个类allocator
嵌入式指针????
在这里插入图片描述

使用:
静态成员变量是所有实例共享的,但是其只是在类中进行了声明,并未定义或初始化(分配内存),类和者类实例就无法访问静态成员变量,这显然是不对的,所以必须先在类外部定义,也就是分配内存。(allocator Foo::myAlloc)
在这里插入图片描述
测试结果:
在这里插入图片描述

四、macro for static allocator 版本4th

使用宏代替代码
在这里插入图片描述

五、global allocator

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值