Как задать частоту вызова Garbage Collector

«Как задать частоту вызова Garbage Collector» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go GC работает автоматически, и явно задавать частоту его вызова не рекомендуется. Однако можно влиять на поведение GC через:

  1. Переменную окружения GOGC (по умолчанию 100):
GOGC=50 ./myapp  # GC будет запускаться чаще
GOGC=200 ./myapp # GC будет запускаться реже
  1. Программно через debug.SetGCPercent():
import "runtime/debug"

func main() {
    debug.SetGCPercent(50) // Аналогично GOGC=50
}

Важно:

  • Значение 0 отключает GC полностью (опасно!)
  • Чем меньше процент, тем чаще GC, но выше CPU нагрузка
  • Оптимальное значение зависит от конкретного приложения