https://github.com/UnsterblichW/tiny_TCMalloc

整体结构

Untitled

整个内存池结构分为三层

第一层 thread cache ,每个线程都独享一个 thread cache,管理小内存,申请回收频繁;

第二层 central cache,当thread cache中管理的内存不够用的时候,才从central cache中批量获取,会根据内存池的实时使用情况来调整批量获取的内存大小;

第三层 page cache,管理大块的内存,当central cache的内存不够的时候会再往下申请,page cache会直接走系统调用来申请空间

各个组件的锁

一些关键的通用结构

定长内存池 ObjectPool