tcache 记录
复制本地路径 | 在线编辑
问题
为什么 tcache 比 fastbin 更快,他们都是单向链表
最主要原因是 tcachebin 是线程私有、无锁的,相当于在线程里面放了一个结构体。此外 tcachebin 不做合并检测,校验相对也少,所以相对也会更快。
为什么 tcache 每个链表数量是 7 个
经验驱动。作者认为在真实 workload 下,7 已经能覆盖绝大多数小对象的瞬时峰值,再多性价比不高。
最主要原因是 tcachebin 是线程私有、无锁的,相当于在线程里面放了一个结构体。此外 tcachebin 不做合并检测,校验相对也少,所以相对也会更快。
经验驱动。作者认为在真实 workload 下,7 已经能覆盖绝大多数小对象的瞬时峰值,再多性价比不高。