Go中的编译器优化:逃逸分析(Escape Analysis)与内存分配优化
**Go中的编译器优化:逃逸分析(Escape Analysis)与内存分配优化**
### 1. 问题描述
在Go中,变量可以分配在栈(stack)或堆(heap)上。栈分配效率高(自动回收),堆分配需要GC介入。逃逸分析是编译器在编译阶段确定变量生命周期是否超出函数作用域的过程:
- 若变量未逃逸(生命周期仅限于函数内),则分配在栈上;
- 若变量逃逸(被外部引用或生命周期更长),则分配在堆上。
面试题可能问:**“什么情况下变量会逃逸到堆?如何通过工具分析逃逸?”*
2025-11-10 23:41:23
0