Что такое escape analysis и как она влияет на аллокации?

Senior
290 просмотров
AFK Offer AI

Escape analysis определяет выходит ли объект за пределы метода или потока. Если нет — JIT может аллоцировать его на стеке вместо heap (stack allocation), или вообще устранить аллокацию (scalar replacement — поля объекта как отдельные переменные). Это снижает давление на GC. Например, если создаёшь StringBuilder только внутри метода — JIT может не аллоцировать его на heap вообще.

Следующий вопрос

Как организовать inter-service communication — sync vs async?