#Golang

参考文献

Go内存分配原则

  • Sharing down typically stays on the stack
    • 在调用方创建的变量或对象,通过参数的形式传递给被调用函数,这时,在调用方创建的内存空间通常在栈上。这种在调用方创建内存,在被调用方使用该内存的“内存共享”方式,称之为 Sharing down。
  • Sharing up typically escapes to the heap
    • 在被调用函数内创建的对象,以指针的形式返回给调用方的情况下,通常,创建的内存空间在堆上。这种在被调用方创建,在调用方使用的“内存共享”方式,称之为 Sharing up。
  • Only the compiler knows
    • 之所以上面两条原则都加了通常,因为具体的分配方式,是由编译器确定的,一些编译器后端优化,可能会突破这两个原则,因此,具体的分配逻辑,只有编译器(或开发编译器的人)知道。

堆分配内存的GC问题

  • Golang GC
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×