🟡 Средний · 2 очк. Go runtime
Какой алгоритм использует сборщик мусора (GC) в Go?
A Reference counting
B Tri-color mark & sweep (трёхцветная маркировка)
C Generational GC (поколенческий)
D Compacting GC (с уплотнением)
Объяснение вопроса

Сборщик мусора в Go использует concurrent tri-color mark-and-sweep: маркировка достижимых объектов идёт конкурентно с выполнением программы, паузы (stop-the-world) короткие - обычно менее 1 мс.

Три цвета

  • Белые - ещё не обработаны
  • Серые - в очереди на обход
  • Чёрные - достижимы, обход завершён

Корни (глобальные переменные, стек) маркируются, затем обход по указателям. В конце не достигнутые белые объекты считаются мусором и освобождаются. Настройки: GOGC (целевое соотношение heap к живым данным, по умолчанию 100).

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