🟡 Средний · 2 очк. Go runtime
Что определяет переменная окружения GOGC?
A Максимальный размер кучи
B Процент роста кучи относительно живых объектов, при котором запускается GC (по умолчанию 100)
C Количество потоков для сборщика мусора
D Частоту GC в секундах
Объяснение вопроса

GOGC задает целевой процент роста кучи. По умолчанию 100: если после GC осталось 10 МБ живых объектов, следующий цикл GC запустится при ~20 МБ (рост на 100%).

  • GOGC=50 - GC запускается чаще (меньше памяти, больше CPU на GC)
  • GOGC=200 - GC запускается реже (больше памяти, меньше CPU на GC)
  • GOGC=off - GC отключен (опасно, память не освобождается)
// Программная установка:
import "runtime/debug"
debug.SetGCPercent(50)  // эквивалент GOGC=50

На практике дефолтный GOGC=100 подходит для большинства приложений. Тюнинг нужен при жестких требованиях к латентности (уменьшить паузы) или при избытке памяти (увеличить GOGC для снижения CPU на GC).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.