一,介绍
malloc 的实现有很多种: ptmalloc, tcmalloc, jemalloc 有的复杂有的简单。
mimalloc https://github.com/microsoft/mimalloc 是比较新,代码量较少(只有 6k+) 的一个 malloc 。 翻了一下 paper + 代码,笔记如下。
二,设计思路
https://www.microsoft.com/en-us/research/uploads/prod/2019/06/mimalloc-tr-v1.pdf
三,目标问题
主要关心几个问题:
- 基本设计亮点
- 除了 free list,其中还用到什么数据结构?
- 怎么解决碎片化的问题?
- best-fit/first-fit 经典问题是否已经过时?
三. 基本概念和类型
include/mimalloc-types.h
mi_block_t