Выбор ответа Junior Память, GC и pprof обновлено

Как посмотреть решения escape analysis

Вопрос

Как узнать, какие переменные компилятор перенёс в кучу?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: go build -gcflags=-m. Флаг -m у компилятора печатает решения об инлайнинге и побеге (escapes to heap, moved to heap), -m -m подробнее. go vet такого режима не имеет. gctrace=1 печатает статистику циклов GC. pprof heap показывает реальные аллокации во время…

Варианты ответа

  1. go build -gcflags=-mправильный ответ
  2. go vet -escape
  3. GODEBUG=gctrace=1
  4. go tool pprof heap

Разбор

Флаг -m у компилятора печатает решения об инлайнинге и побеге (escapes to heap, moved to heap), -m -m подробнее. go vet такого режима не имеет. gctrace=1 печатает статистику циклов GC. pprof heap показывает реальные аллокации во время работы, но не объясняет, почему значение убежало.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.