- 分配在 栈中,则函数执行结束可自动将内存回收
- 分配在 堆中,则函数执行结束可交给GC(垃圾回收)处理
变量逃逸的的结论(随着go版本的迭代,该结论不一定一直成立):
- 共享了栈上的一个值时,它就会逃逸
- 栈空间不足逃逸(比如创建一个超大的slice,超过栈空间)
- 动态类型逃逸,函数参数为interface类型(典型的fmt.Println方法)
本文探讨了Go语言中栈和堆的内存分配策略,分析了变量逃逸至堆内存的几种情况,包括共享栈上值、栈空间不足及动态类型逃逸。
变量逃逸的的结论(随着go版本的迭代,该结论不一定一直成立):
1085
893
944
389

被折叠的 条评论
为什么被折叠?