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

    官方介绍:tcmalloc[https://google.github.io/tcmalloc/]参考文章:TCM...

  • GoLang-内存管理

    一、tcmalloc介绍<参考资源> go的内存管理和tcmalloc(thread-caching malloc...

  • golang 源码剖析(2) TCMalloc内存管理器

    使用TCMalloc(Thread-Caching Malloc)当内存管理器以下翻译自tcmalloc.html...

  • Suricata文档——第七章性能5

    7.10 Tcmalloc 'tcmalloc'是Google为了改进线程化程序中的内存处理而在google-pe...

  • tcmalloc

    TCMalloc是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算...

  • TCMalloc解密

    原文请移步我的博客:TCMalloc解密 写在前面 本文首先简单介绍TCMalloc及其使用方法,然后解释TCMa...

  • tcmalloc原理

    1、动机 tcmalloc要比glibc2.3 malloc(基于ptmalloc2实现)要快,ptmalloc2...

  • TCMalloc入门

    TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是...

  • tcmalloc 比较glibc

    使用了thread cache,小块的内存分配都可以从cache中分配。多线程分配内存的情况下,可以减少锁竞争。 ...

  • tcmalloc to release memory

    After testing, the occupied memory is not released by usi...

网友评论

      本文标题:tcmalloc

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