Go语言中变量、init函数、main函数的执行顺序
- 首先初始化导入包的变量和常量
- 然后执行导入包的init函数
- 然后初始化本包的变量和常量
- 然后执行本包的init函数
- 最后执行本包的main函数
GC
三次标记法
STW
内存逃逸
定义
只要局部变量不能证明在函数结束后不能被引用,那么就分配到堆上。换句话说,如果局部变量被其他函数所捕获,那么就被分配到堆上
编译时无法确定大小的,就会分配到堆上。
三次标记法
STW
只要局部变量不能证明在函数结束后不能被引用,那么就分配到堆上。换句话说,如果局部变量被其他函数所捕获,那么就被分配到堆上
编译时无法确定大小的,就会分配到堆上。