知识卡片
MCache走本地快路
内容
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……