知识卡片

MCache走本地快路

专业/工作 · 470.b.1.a.1.c.3.a.6.a.2.d.1.a.1.b.1.a.2.a.5.a

内容

mcache 为当前执行线程提供本地小对象分配缓存,减少锁竞争。发散:高并发分配器的第一招,通常是把全局竞争拆成本地路径。本地余量不足时转向[[MCentral做跨线程平衡]]。

参考来源

- 位置:《Go语言入门到实战(共3册)》第41章《Go语言学习笔记:第16章 内存分配》(源文件:_epub-src/text/part0099.html) - 结论依据:原文围绕“mcache.go”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。 - 原始内容:object的span empty mspan // 链表:没有空闲object,或已被cache取走的span } mcache.go type mcache struct { alloc [_NumSizeClasses]*mspan // 以sizeclass为索引管理多个用于分配的span……