9.4 代码结构

Go 的逃逸分析发生在内联操作之后,入口代码如下:

// file: cmd/compile/internal/gc/main.go

func Main() {
    // 忽略之前代码

    // 逃逸分析
    escape.Funcs(typecheck.Target.Decls)

    // 忽略之后代码
}

逃逸分析在内联操作之后是因为内联减少了函数调用,同时可能会减少局部变量的逃逸情况。逃逸分析的所有代码都在文件 cmd/compile/internal/escape/escape.go 中。

最后更新于