Middle
30
0
questionbank

Каковы ваши знания о сборщике мусора в языке Go?

Answer from sobes.tech neural network

Golang использует параллельный и сборщик мусора с низкой задержкой на основе марк-свип алгоритма.

Основные характеристики:

  1. Триколор-алгоритм (Three-color algorithm): Помечает объекты тремя цветами: белым (потенциальный мусор), серым (объект достижим, но его потомки не проинспектированы) и чёрным (объект и его потомки достижимы).
  2. Параллельность (Parallel): Работает параллельно с пользовательскими горутинами на нескольких ядрах, минимизируя время остановки.
  3. Конкурентность (Concurrent): Большая часть работы GC выполняется одновременно с выполнением программы.
  4. Минимизация стоп-ворлд времени (Low-latency Stop-The-World): Время остановки всех горутин (STW) крайне короткое, используется только для фазы "начало маркировки" (start of marking) и "завершение маркировки" (end of marking), чтобы обеспечить согласованность графа объектов.
  5. Переиспользуемые сканы (Stack scanning): Сканирование стеков также выполняется параллельно и конкурентно с STW.
  6. Целевой уровень заполнения хипа (Heap growth target): GC стремится поддерживать определённый процент заполнения хипа после каждого цикла, чтобы избегать слишком частых или слишком редких циклов. Этот порог можно контролировать через переменную GOGC. По умолчанию GOGC=100, что означает, что GC запускается, когда размер хип

Golang использует параллельный и сборщик мусора с низкой задержкой на основе марк-свип алгоритма.

Основные характеристики:

  1. Триколор-алгоритм (Three-color algorithm): Помечает объекты тремя цветами: белым (потенциальный мусор), серым (объект достижим, но его потомки не проинспектированы) и чёрным (объект и его потомки достижимы).
  2. Параллельность (Parallel): Работает параллельно с пользовательскими горутинами на нескольких ядрах, минимизируя время остановки.
  3. Конкурентность (Concurrent): Большая часть работы GC выполняется одновременно с выполнением программы.
  4. Минимизация стоп-ворлд времени (Low-latency Stop-The-World): Время остановки всех горутин (STW) крайне короткое, используется только для фазы "начало маркировки" (start of marking) и "завершение маркировки" (end of marking), чтобы обеспечить согласованность графа объектов.
  5. Переиспользуемые сканы (Stack scanning): Сканирование стеков также выполняется параллельно и конкурентно с STW.
  6. Целевой уровень заполнения хипа (Heap growth target): GC стремится поддерживать определённый процент заполнения хипа после каждого цикла, чтобы избегать слишком частых или слишком редких циклов. Этот порог можно контролировать через переменную GOGC. По умолчанию GOGC=100, что означает, что GC запускается, когда размер хип

Register or sign in to get access to full answers for all questions from the question bank.

garbage-collectionmemory-managementruntimeconcurrencyperformance-tuning