Ir análisis montón/memoria de pila

En el lenguaje Go, el "análisis de escape" realizado por el compilador durante la fase de compilación determina si una variable se asigna en la pila o en el montón. Si una variable solo se usa dentro del alcance de la función, a menudo se asigna en la pila; si se hace referencia a una variable externamente o se devuelve fuera de la función, entonces puede "escapar" al montón.

Para ver los resultados del análisis de escape para un programa Go, puede usar las opciones al crear el programa -gcflags='-m'. Por ejemplo:

go build -gcflags='-m' main.go

El compilador generará información sobre cómo se asignan las variables. Por ejemplo, podríamos ver un resultado similar al siguiente:

./main.go:9:6: can inline foo with cost 5 as: ...
./main.go:14:9: &x escapes to heap
./main.go:14:9: 	from ~r0 (return) at ./main.go:15:2

El resultado anterior muestra que en la línea 14 de main.go la variable x escapa al montón.

Supongo que te gusta

Origin blog.csdn.net/qq_35760825/article/details/131939811
Recomendado
Clasificación