一,介绍

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

三,目标问题

主要关心几个问题:

  1. 基本设计亮点
  2. 除了 free list,其中还用到什么数据结构?
  3. 怎么解决碎片化的问题?
  4. best-fit/first-fit 经典问题是否已经过时?

三. 基本概念和类型

include/mimalloc-types.h

mi_block_t

四,内存布局

五,malloc 流程

1,

六,free 流程