Back to questions
Senior
4
Расскажи про сборщик мусора (Garbage Collector) в Go.
Companies where asked
.wrk
Answer from AI
sobes.tech AI
В Go сборщик мусора (Garbage Collector, GC) отвечает за автоматическое управление памятью, освобождая неиспользуемые объекты, чтобы избежать утечек памяти.
Особенности GC в Go:
- Параллельный и конкурентный: работает одновременно с выполнением программы, минимизируя паузы.
- Трёхфазный процесс: маркировка (определение достижимых объектов), очистка (удаление недостижимых), и сжатие памяти.
- Тонкая настройка: можно управлять частотой и агрессивностью сборки через параметры среды.
Пример использования GC в Go не требует явного вызова, но можно вызвать сборку вручную:
package main
import (
"runtime"
"fmt"
)
func main() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
fmt.Printf("Allocated before GC: %v bytes\n", m.Alloc)
runtime.GC() // принудительный запуск сборщика мусора
runtime.ReadMemStats(&m)
fmt.Printf("Allocated after GC: %v bytes\n", m.Alloc)
}
Таким образом, GC в Go облегчает разработчикам управление памятью, повышая надёжность и производительность приложений.