slice分配在堆上还是栈上

本文阅读 1 分钟
首页 golang 正文

题目序号:4562

题目来源:京东

频次:3

答案:栾龙生

有可能分配到栈上,也有可能分配到栈上。当开辟切片空间较大时,会逃逸到堆上。

通过命令go build -gcflags "-m -l" xxx.go观察golang是如何进行逃逸分析的

package main

func main() {
    _ = make([]string, 200)             //1
    //_ = make([]string, 20000)        //2
}

//output
//1. make([]string, 200) does not escape
//2. make([]string, 20000) escapes to heap
本文来自投稿,不代表本站立场,如若转载,请注明出处:
了解中间件吗?有什么好处?
« 上一篇 09-17
Go 高并发的特点
下一篇 » 09-17

发表评论

发表评论