tcmalloc原理

tcmalloc的原理

ThreadCache(无锁)内存不够用会向CentralCache申请(每个桶一把锁),CentralCache内存不够用时会向PageHeap(全局锁)申请,PageHeap不够用就会向OS操作系统申请。
https://juejin.cn/post/6924899045353881608

小内存分配流程:

file

大内存分配原理:

直接从pageheap中的spanlistpair中取
file

tcmalloc相比malloc的优势:

1.三级缓存,小内存不用加锁(中央区才有锁)(malloc的arena可能共享,产生锁竞争),多线程扩展性好
2.更优的速度和内存使用,ptmalloc2可能需要300纳秒,而TCMalloc仅需约50纳秒,因为ptmalloc2还有头信息
3.size class设计,内存碎片更小
4.智能垃圾回收到中央区

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Contents
滚动至顶部