Neo's Blog

不抽象就无法深入思考
不还原就看不到本来面目!

0%

内存池系列|TCMalloc分析

实现要点

  1. 分层(ThreadCache, CentralCache, PageCache)
  2. 线程局部存储来管理ThreadCache
  3. 通过基于hash的freelist来管理小对象
  4. 通过radix tree来管理分配出来的obj到span的映射,如此来方便做回收【对象地址到span的映射】
  5. 通过buddy算法来管理span, 保证用来分配内存的span尽可能的大(大的总是可以通过分裂成为小的,小的只有在合适的时机-内存连续才能合并成为大的)
你的支持是我坚持的最大动力!