golang的强制设置gc的内存限制
一. 内存管理
内存分配器
堆和栈区别
1.空间分配区别:
栈:由操作系统(编译器)自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。
堆:一般由代码分配释放,若代码没有显式释放,程序结束时可能由OS回收,分配方式类似链表。
2.缓存方式区别:
栈:使用的是一级缓存,通常都是被调用时处于存储空间中,调用完毕立即释放。
堆:存放在二级缓存中,生命周期由垃圾回收算法来决定。
3.数据结构区别:
栈:先进后出的线性结构。
堆:类似于一颗树。
1.1 go内存分配