Go 性能优化:如何减少 GC 压力?7 个实战技巧
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
核心:减少堆分配次数和总量。手段:① 对象复用(sync.Pool、全局 buffer);② 避免逃逸(小对象传值、避免返回指针);③ 预分配容量(make([]T, 0, n) 避免多次扩容;map 预估容量);④ 用 strings.Builder 替代字符串 + 拼接;⑤ 减少 interface{} 装箱(保持具体类型);⑥ 局部变量作用域最小化(帮助栈分配);⑦ 用 -gcflags=-m 检查逃逸;⑧ 适当调大 GOGC 换吞吐。先 pprof 分析分配热点,再针对性优化,避免盲目优化。
回复
0 条回复