Анализ компилятора: может ли указатель на переменную "убежать" из функции. Если да - переменная размещается в куче. Запуск с -gcflags="-m" выводит решения по escape. Цель - держать данные на стеке и снижать нагрузку на GC.
go build -gcflags="-m" 2>&1 | grep escape