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

Что значит GOGC=100

Вопрос

Что означает значение по умолчанию GOGC=100?

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

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

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

Коротко

Правильный ответ: Цикл GC стартует, когда куча выросла на 100% от живой. GOGC задаёт целевой рост кучи между сборками в процентах: при 100 и 50 МБ живых данных следующий цикл начнётся около 100 МБ.

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

  1. GC запускается по таймеру каждые 100 мс работы программы
  2. GC может занимать не больше 100% одного ядра процессора
  3. Цикл GC стартует, когда куча выросла на 100% от живойправильный ответ
  4. Куча ограничена 100 МБ, дальше аллокации ждут сборки

Разбор

GOGC задаёт целевой рост кучи между сборками в процентах: при 100 и 50 МБ живых данных следующий цикл начнётся около 100 МБ. С Go 1.18 в расчёт входят также стеки горутин и глобальные переменные. GOGC=200 делает сборки реже ценой памяти, GOGC=off отключает их. Временного интервала и жёсткого лимита GOGC не задаёт, лимит это GOMEMLIMIT. Нагрузку GC на CPU целится держать около 25% в фазе маркировки.

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

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