golang编译时的参数传递(gcflags, ldflags)

2023-02-11  本文已影响0人  robertzhai

-gcflags

指定编译选项

-ldflags

设置链接选项

查看gcflags所有可用的参数

go tool compile --help

分析go是如何分配内存的, 查看堆逃逸

go run -gcflags "-m -l " main.go

example

type User struct {
    name string
}

func getUser() *User {
    user := User{name: "golang"}
    return &user
}

func main() {
    fmt.Println(getUser())
}

output

# command-line-arguments
./main.go:10:2: moved to heap: user
./main.go:16:13: ... argument does not escape
&{golang}

user 逃逸到堆了

链接器

go tool link --help

ref

上一篇 下一篇

猜你喜欢

热点阅读