![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存管理
文章平均质量分 96
c++内存管理相关内容,侯捷老师主讲为基础,加入自己的理解。
KuoGavin
这个作者很懒,什么都没留下…
展开
-
GNU C++ Allocator分类总结与归纳
文章目录1. new_allocator & malloc_allocator2. 智能 Allocator2.1 智能 Allocator 概念、思路和实现本文以GNU C++为例子进行总结归纳,主要是对GNU C++当中的 Allocator 的类别和个中思想进行分别讲解和整理。同时经过之前的系列文章,可以知道 Allocator 主要用于满足容器中的 Element 进行空间的分配任务需求。也即是,当客户将元素加入容器中,容器必须分配更多内存以保存这些元素,于是容器向其所含的 Alloc原创 2021-04-19 17:49:30 · 1041 阅读 · 3 评论 -
loki::allocator
文章目录1. loki::allocator 结构2. loki::allocator 使用实例3. loki::allocator 具体实现3.1 Chunk 部分实现3.2 FixedAllocator 部分实现4. loki::allocator 总结loki::allocator 是由C++编委会一成员所写,可找到的最新版本是 loki-0.1.7.exe,所以从未发行过。但是并不妨碍学习其中的设计思路和实现方法。其实现颇有暴力美学的味道,但是又能够较好的实现功能,相比于std::alloc,原创 2021-04-12 20:55:59 · 396 阅读 · 2 评论 -
malloc / free:SBH(Small Block Heap)——以VC6为例
SBH 是 Small Block Heap 的缩写,可见于 VC6 的源码当中,而迭代到 VC10 及之后版本,SBH机制虽继续存在,但已经整合至操作系统 API 当中去了(Windows Heap)。以下内容均以 VC6 版本为例进行展开。SBH 顾名思义,即小内存区块栈。在实际使用中,若是请求的内存空间 size > threshold 则使用 HeapAlloc() 从 _crtheap 当中取用内存,若 size < threshold(_sbh_threshold = 1016 =原创 2021-04-10 19:36:18 · 1557 阅读 · 1 评论 -
std::allocator——以GNU2.9为例
文章目录1. 标准分配器实现1. 标准分配器实现VC6.0 的 malloc() 内存块布局,由debug header(内含cookie(4bytes))、block size(client所获得pointer指向该块头部)、debug tail、pad(字节填充,使得整个所分配内存块字节数大小为16的倍数)和cookie(共两个cookie,记录该内存块必要信息);VC6.0、BC5 和 GNU2.9 标准分配器 allocator 实现均是以 ::operator new() 和 ::ope原创 2021-04-06 22:05:53 · 494 阅读 · 0 评论 -
C++内存管理原始工具(primitives)
文章目录1. C++使用内存可用的原始工具1.1 C++应用(application)使用内存(memory)的途径1.2 C++ memory primitives 类别及是否可以重载1.3 primitives 的使用2. 原始工具详解2.1 new/delete expression1. C++使用内存可用的原始工具1.1 C++应用(application)使用内存(memory)的途径1.2 C++ memory primitives 类别及是否可以重载分配释放类属可否重原创 2021-04-01 23:29:17 · 570 阅读 · 0 评论