架构原理 · 核心工作流程 · 锁模型 · 性能对比 · 适用场景
Linux 系统默认内存分配器,是 dlmalloc 的多线程演进版本。以 Arena(竞技场) 为核心隔离单元,每个线程优先绑定到一个 Arena,通过 mutex 保护 Arena 内的所有操作。
Thread-Caching Malloc,Google 为解决高并发场景下的锁争用问题而设计。核心思路:每个线程拥有私有缓存,绝大多数分配/释放无需加锁,仅在缓存补充/归还时访问中央堆。
Jason Evans 为 FreeBSD 设计,后被 Facebook/Meta 大规模优化。以 多 Arena + 精细 Size Class + 线程缓存 三层结构为特征,在降低碎片率与高并发间取得最佳平衡。
ptmalloc 碎片问题是三者中最严重的:
tcmalloc 优先追求速度,碎片控制属于中等水平:
jemalloc 是三者中碎片控制最精细的:
以下对比为相对表现(满分 10),实际数值因负载模式差异较大,仅供参考。