tcmalloc

作者: robertzhai | 来源:发表于2023-07-24 14:40 被阅读0次
    image.png image.png image.png

    https://zhuanlan.zhihu.com/p/29216091

    • threadCache(单个线程内部) => CentralCache(多个线程共享) => Pageheap(1 个 page 8k,不同的page 构成不同的span) 的3级结构

    • <=256k 的对象空间 按 threadCache-》CentralCache=>Pageheap 顺序进行分配

    • 256 的对象空间 直接到PageHeap 分配

    • 每个线程都一个线程局部的 ThreadCache,按照不同的规格,维护了对象的链表;如果ThreadCache 的对象不够了,就从 CentralCache 进行批量分配;如果 CentralCache 依然没有,就从PageHeap申请Span;如果 PageHeap没有合适的 Page,就只能从操作系统申请了。

    • 在释放内存的时候,ThreadCache依然遵循批量释放的策略,对象积累到一定程度就释放给 CentralCache;CentralCache发现一个 Span的内存完全释放了,就可以把这个 Span 归还给 PageHeap;PageHeap发现一批连续的Page都释放了,就可以归还给操作系统。

    • https://juejin.cn/post/6924899045353881608

    相关文章

      网友评论

          本文标题:tcmalloc

          本文链接:https://www.haomeiwen.com/subject/nctcpdtx.html