malloc的故事
读了张洋的《如何实现一个malloc》和Marwan Burlle的《A Malloc Turorial》,张洋的博文是对Marwan Burlle的理解、翻译和补充,缺失了一些细节。但读了张洋的文章后,再读《A Malloc Turorial》会快很多。
#A Malloc Tutorial
讲了什么
- 什么是malloc
- 堆的内存模型
- 如何通过系统调用操纵堆
- 什么是块、块的数据结构
- 结构体的本质(虽然变量data属于结构体,但只是想获取数据区的指针,而数据区不属于meta结构体)
- 如何实现内存对齐
- 基本的堆管理需要哪些功能/函数
- 如何创建、选择、分割块
- 碎片整理(融合块)
- free要做什么,如何实现
- 如何实现calloc
- 何时把块“还给系统”
- realloc的原理,及优化