DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 堆与栈的区别?如何让变量分配在栈上提升性能

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

栈:每个 goroutine 独立(初始 2-4KB 可增长),后进先出,存储局部变量、函数调用帧;分配释放快(移动指针)、无需 GC、缓存友好;容量有限,大对象不适合。堆:全局共享,存储逃逸对象、动态分配的大对象;分配较慢(涉及锁/GC)、需要垃圾回收。Go 开发者不直接控制(无 new 分配位置选择),由逃逸分析决定。性能优化核心之一:减少堆分配(对象复用、值传递、避免逃逸)。

下载推广海报

圈内讨论推广海报

《Go 堆与栈的区别?如何让变量分配在栈上提升性能》完整推广海报
REPLIES

回复

0 条回复
暂无回复。