摘要: 逃逸分析、栈分配与 sync.Pool 对象池 一、核心概念与架构设计 Go 程序的内存只去两个地方:goroutine 私有的栈,和全局共享的堆。栈上的空间随函数调用自动伸缩,函数返回就跟着栈帧一起回收,分配成本有时只有一条调整栈指针的指令;堆上的对象要走 size class 匹配、mcache 阅读全文
posted @ 2026-10-12 14:29 FfHUCisI 阅读(85) 评论(0) 推荐(0)
摘要: GC Pacer 调优算法:GOGC、GOMEMLIMIT 与容器 OOM 防御 一、核心概念与架构设计 容器里跑 Go 服务的人大概都做过这个实验:把 GOGC 从 100 调到 50,以为能压住内存,结果 CPU 涨上去、P99 抖动起来,OOM 该来还是来。原因不难找,GOGC 回答的是相对问 阅读全文
posted @ 2026-10-12 14:28 FfHUCisI 阅读(7) 评论(0) 推荐(0)
摘要: Execution Trace 深入实战:可视化调度与系统停顿分析 一、核心概念与架构设计 用 pprof 排查过线上问题的人多半经历过这种挫败:CPU 占用不高、heap 平平无奇、goroutine 数量正常,但 p99 就是高。pprof 是聚合视图,它把几分钟的数据揉成一个平均数——而问题的 阅读全文
posted @ 2026-10-10 09:19 FfHUCisI 阅读(7) 评论(0) 推荐(0)
摘要: Go 性能分析工具 pprof:CPU、Heap 与 Goroutine 实战 一、核心概念与架构设计 服务上线后 CPU 飙到 90%,你的第一反应是什么?加日志、看监控、翻代码猜?pprof 提供的是另一条路:让运行时告诉你 CPU 时间到底花在哪一行、内存被谁分配、goroutine 卡在哪个 阅读全文
posted @ 2026-10-10 09:18 FfHUCisI 阅读(5) 评论(0) 推荐(0)
摘要: pprof 火焰图(Flame Graph)阅读与热点代码重构实战 一、核心概念与架构设计 上一篇用 go tool pprof -top 看到了函数级的耗时排名,但排名有一个致命缺陷:它丢掉了调用关系。fmt.Sprintf 占 8% 的 CPU,这 8% 是谁调用它打出来的?是日志、是序列化、还 阅读全文
posted @ 2026-10-09 09:16 FfHUCisI 阅读(5) 评论(0) 推荐(0)
摘要: atomic 原子操作原理与 CPU 锁总线/缓存一致性(MESI) 一、核心概念与架构设计 上一篇拆解 sync.Mutex 时,快速路径的第一步就是对 state 做一次原子读。没有 sync/atomic,Mutex、WaitGroup、Channel 里的等待队列计数,全都无从谈起。可以说 阅读全文
posted @ 2026-10-09 09:15 FfHUCisI 阅读(5) 评论(0) 推荐(0)
摘要: sync.Map 源码剖析:read/dirty 读写分离与 misses 击穿 一、核心概念与架构设计 sync.Map 是标准库里最常被误用的结构。它解决的问题很具体:读极多、写极少、key 集合基本稳定的并发 map。典型负载是服务启动后写入一次的配置表、路由表、元数据缓存。在这类负载下它做到 阅读全文
posted @ 2026-10-08 11:32 FfHUCisI 阅读(4) 评论(0) 推荐(0)
摘要: sync.RWMutex 读写锁源码:写优先与无锁并发计数 一、核心概念与架构设计 读写锁的卖点是"读读共享、读写互斥",但它的实现里藏着一个更容易被忽视的承诺:写者不能被读者无限拖延。如果没有这个承诺,读请求源源不断时写锁可能永远拿不到(写饥饿)。sync.RWMutex 用一个非常巧妙的编码技巧 阅读全文
posted @ 2026-10-08 11:29 FfHUCisI 阅读(4) 评论(0) 推荐(0)
摘要: sync.Mutex 源码深度拆解:正常模式(自旋)与饥饿模式 一、核心概念与架构设计 sync.Mutex 是 Go 并发体系里最基础、也是被调用次数最多的同步原语。一个 Lock()/Unlock() 只占几纳秒的快速路径,背后是一套为两种截然相反的目标做权衡的状态机: 吞吐优先:锁释放的瞬间, 阅读全文
posted @ 2026-10-08 11:27 FfHUCisI 阅读(8) 评论(0) 推荐(0)
摘要: sync.Once 与 sync.Cond 源码与并发控制陷阱 一、核心概念与架构设计 这两个原语解决的是并发控制里方向相反的两个问题: sync.Once 要保证一件事在并发下只发生一次。它有性能上限要求:Do 的首次调用之后的每一次调用都要近乎免费,否则单例初始化的 fast-path 会成为热 阅读全文
posted @ 2026-10-08 11:26 FfHUCisI 阅读(3) 评论(0) 推荐(0)