ExpertiDict

Go · Avançado · Inglês · Técnico

escape analysis

/ɪˈskeɪp əˈnæl.ə.sɪs/substantivo

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: x

Exemplos

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

Veja também

Todos os termos de Go