Escape analysis — анализ времени жизни и использования значений, помогающий выбрать размещение в стеке или куче. Это не то же самое, что эвакуация данных при росте структуры.
Что такое escape analysis («эвакуация») в Go?
Escape analysis — анализ времени жизни и использования значений, помогающий выбрать размещение в стеке или куче. Это не то же самое, что эвакуация данных при росте структуры.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Escape analysis — анализ времени жизни и использования значений, помогающий выбрать размещение в стеке или куче. Это не то же самое, что эвакуация данных при росте структуры.
Возврат ссылки не всегда означает дорогую аллокацию после оптимизаций, а локальная переменная не обязана остаться в стеке. Проверяйте диагностику компилятора и профиль, а не угадывайте по синтаксису. Heap allocations важны из-за затрат на выделение и дальнейшую работу GC.