ExpertiDict

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

escape analysis

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

Otimização do JIT que descobre se um objeto nunca escapa do método ou da thread, permitindo alocá-lo sem a heap (scalar replacement) ou eliminar locks.

Onde usar

Aparece em discussões de microbenchmarks: 'o objeto nem chega a ser alocado'. Explica por que um new num laço quente pode sair de graça.

Em código

record Ponto(double x, double y) {}
static double norma(double x, double y) {
  var p = new Ponto(x, y); // não escapa
  return p.x() * p.x() + p.y() * p.y();
}
// o JIT pode evitar a alocação de p

Exemplos

Escape analysis removed the allocation, the object never leaves the method.

A escape analysis removeu a alocação, o objeto nunca sai do método.

Don't rely on escape analysis to make new free.

Não conte com a escape analysis para tornar o new gratuito.

Cuidado

Não conte com ela: depende do JIT, do inlining e do tamanho do método; não é garantia da linguagem.

Sinônimos

análise de escape

Veja também

Todos os termos de Java