Go · Avançado · Inglês · Técnico
escape analysis
Análise feita pelo compilador para decidir se uma variável pode ficar na pilha ou se deve ir para o heap, porque sua referência sobrevive à função.
Onde usar
Explica por que retornar &x é seguro em Go e por que certos códigos alocam mais do que parece. Em otimização, reduzir escapes diminui o trabalho do garbage collector.
Em código
func novo() *int {
x := 42
return &x // x escapa para o heap
}
// go build -gcflags=-m
// moved to heap: xExemplos
Escape analysis moved the variable to the heap.
A escape analysis moveu a variável para o heap.
Use -gcflags=-m to see what escapes to the heap.
Use -gcflags=-m para ver o que escapa para o heap.
Cuidado
Não é preciso decidir pilha ou heap no código: new e &T{} não garantem heap, nem declarar variável local garante pilha.
Sinônimos
análise de escape